Resize van button in java gui

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 7.390

Resize van button in java gui

Hallo,

ik ben een beetje aan het experimenteren met de GUI geleverd door de swing-lib van java, maar ik stoot op het volgende probleem:
mEnlargeButton.setBounds(5, 5, 40, 40);
zou, naar mijn mening de button quasi lingsboven op het panel moeten plaatsen en een hoogte en breedte geven van 40 px.

Als ik run, blijft de knop echter hardnekkig gecentreerd staan in het midden en bovenaan.
java.png
java.png (41.56 KiB) 706 keer bekeken
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Ook het volgende levert geen resultaat:
Box boxVertical = Box.createVerticalBox();

Box boxHorizontal = Box.createHorizontalBox();





Container container = getContentPane(); // hierin zetten we onze componenten

container.add(boxVertical);

mEnlargeButton = new JButton("Do something");

boxVertical.add(Box.createVerticalStrut(10)); // verticale spatie boven de button

boxVertical.add(mEnlargeButton);

mEnlargeButton.setAlignmentX(LEFT_ALIGNMENT);
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Gebruikersavatar
Berichten: 2.097

Re: Resize van button in java gui

Heb je expliciet 'null' in de constructor gezet van je JPanel?

Dus: JPanel(null)

Anders werks setBounds(...) niet, want dan wordt de layout bepaald door de layoutManager van de JPanel

Edit: ik zie juist in je code stukje, dat je niet rechtstreeks met een JPanel werkt.

Voeg volgende lijn voordat je de button toevoegt eens toe: container.setlayout(null)
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Erg bedankt, ik zal de tip goed onthouden!
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Berichten: 7.068

Re: Resize van button in java gui

Bij dit soort vragen is een Short, Self Contained, Correct (Compilable), Example vaak erg handig.

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Ik zat nog met een conceptuele vraag, di neerkomt op het volgende.

Ik heb een class, waarin ik een nieuw frame aanmaak.

Code: Selecteer alles

SimpleFrameLayout frame = new SimpleFrameLayout("Simulatie");
Binnen de SimpleFrameLayout, maak ik twee Panels aan, mypanel en mypanel2.

Op eke panel plaats ik verschillende knoppen.

Nu beschouw ik het ene panel als een soort knoppenbalk met bepaalde opties die niet altijd even relevant zijn. Op het andere panel had ik dus graag een knop show/hide toegevoegd om het eerste panel te verbergen.

Ik wil dus een method schrijven Hide(Panel mypanel) die het volgende inhoudt:

Code: Selecteer alles

mypanel.setVisible(false);
en die om het even welk panel op mijn frame kan verbergen.

Waar moet ik nu die functie plaatsen, en hoe zorg ik ervoor dat de panels die zijn toegevoegd op het frame, zichtbaar zijn zodat ik ze als argument kan meegeven?

Ik vraag zeker geen hele code, ik vraag me enkel af met welke redenering ik zelf tot het antwoord op deze vraag zou kunnen komen?
java2.png
java2.png (40.52 KiB) 707 keer bekeken
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Gebruikersavatar
Berichten: 5.609

Re: Resize van button in java gui

In fysics I trust schreef:Ik zat nog met een conceptuele vraag, di neerkomt op het volgende.

Waar moet ik nu die functie plaatsen, en hoe zorg ik ervoor dat de panels die zijn toegevoegd op het frame, zichtbaar zijn zodat ik ze als argument kan meegeven?
Je moet een ActionListener maken waarin je die methode plaatst. En die ActionListener moet je toevoegen aan je knop.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Ik was je antwoord vergeten bekijken, (ik had het net gevonden ;) )maar alsnog bedankt voor je vraag.

Intussen ben ik een soortgelijk fenomeen tegengekomen:

Mijn Jslider resizet bij het het verslepen van de slideknop die erbij hoort...

Ik vind niet direct wat de reden ervan is.

Iemand die het wel weet of hetzelfde heeft meegemaakt?

Alvast bedankt!
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Gebruikersavatar
Berichten: 2.097

Re: Resize van button in java gui

Plak het stukje code betreffende de JSlider hier eens.
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Code: Selecteer alles

JSlider voltSlider = new JSlider(20, 100, 65);

			voltSlider.setMinorTickSpacing(5);

			voltSlider.setMajorTickSpacing(20);

			voltSlider.setPaintTicks(true);

				voltSlider.setPaintLabels(true);

		   

			   voltSlider.addChangeListener(new ChangeListener() {

					  public void stateChanged(ChangeEvent evt) {

					  JSlider slider = (JSlider) evt.getSource();

					  if (!slider.getValueIsAdjusting()) {

					  int value = slider.getValue();

					  System.out.println(value);

					  voltage=value;

					  voltagebutton.setText("Set fixed at "+String.valueOf(voltage)+" V");

		  

		}

	  }

	});
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Gebruikersavatar
Berichten: 2.097

Re: Resize van button in java gui

Met bovenstaande code krijg ik je probleem niet gereproduceerd...

Ik zie er ook niets mis aan. (Buiten dat ik aanraad om elke overridende method ook daadwerkelijk met @Override te annoteren)
"Why must you speak when you have nothing to say?" -Hornblower

Conserve energy: Commute with a Hamiltonian

Gebruikersavatar
Berichten: 7.390

Re: Resize van button in java gui

Het is inderdaad vreemd, want intussen krijg ik het probleem ook niet meer gereproduceerd (frisse herstart van de computer).

Het is inderdaad een goede top om de override expliciet aan te geven, bedankt!
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Reageer