# Button mit fester Größe?



## equin2 (30. Apr 2007)

Hallo, wie kann ich einem Button eine feste Größe zuweisen? hab einen Button der beim drauklicken seinen Text ändert, der aber seine Größe beibehalten soll, weil sonst mein Layout verschoben wird...


----------



## JPKI (30. Apr 2007)

Welcher Button ändert denn beim Draufklicken seine Größe?


----------



## equin2 (30. Apr 2007)

Also ich hab zwei Panels die jeweils eine Zeile darstellen. Die jeweils mit FlowLayout (hab auch schon BoxLayout probiert). Ganz rechts in jeder Zeile steht ein Button, der beim draufklicken die Aufschrift von off  auf on und umgekehrt wechselt.

Aber wenn ich diesen Button ganz rechts anklicke wird der ein kleines Stückchen größer und alle Element links davon verschieben sich ein bisschen....


----------



## equin2 (30. Apr 2007)

Kann den Code auch mal hier reinstellen, wenn das weiterhilft...


```
package AtomicBomberman.SpielEinstellungen;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;






public class Musik extends JFrame implements ActionListener, ChangeListener{

	private static final long serialVersionUID = 1L;
	
	private int locationX = 200;
	private int locationY = 200;
	
	private String musikEinstellung;
	private String soundEinstellung;
	
	private JButton bMusik;
	private JButton bSound;
	
	private JLabel musik = new JLabel("Musik");
	private JLabel sound = new JLabel("Sound");
	
	
	JSlider sliderMusik;
	JSlider sliderSound;
	
	private JPanel panel1;
	private JPanel panel2;
	
	private int gainMusik;
	private int gainSound;
	
	
	
	public Musik(){
		
		setMusik("on");
		setSound("on");
		
		bMusik = new JButton(getMusik());
		bSound = new JButton(getSound());
		
		bMusik.addActionListener(this);
		bSound.addActionListener(this);
		
		sliderMusik = new JSlider();
		sliderSound = new JSlider();
		
		sliderMusik.addChangeListener(this);
		sliderSound.addChangeListener(this);
	
		
		
		panel1 = new JPanel();

		panel1.setLayout(new BoxLayout(panel1,BoxLayout.X_AXIS));
		
		panel1.add(musik);
		panel1.add(sliderMusik);
		panel1.add(bMusik);
		
		
		
		panel2 = new JPanel(new FlowLayout());
		
		panel2.add(sound);
		panel2.add(sliderSound);
		panel2.add(bSound);
		
		
		getContentPane().setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
		getContentPane().add(panel1);
		getContentPane().add(panel2);
		
		// Einstellungen fuer das Fenster
		setTitle("Einstellungen");
		setLocation(locationX,locationY);
		pack();
	}
	
	
	private String getSound() {
		return soundEinstellung;
	}


	private void setSound(String soundEinstellung) {
		this.soundEinstellung = soundEinstellung;
	}


	public void setMusik(String musikEinstellung){
		this.musikEinstellung = musikEinstellung;
	}
	
	private String getMusik() {
		return musikEinstellung;
	}


	
	
	public void zeige(boolean s){
		setVisible(s);
	}


	public void actionPerformed(ActionEvent e) {
		
		// Musik Button 
		if(e.getSource().equals(bMusik)){
			if(getMusik().equals("on")){
				bMusik.setText("off");
				setMusik("off");
			}
			else{
				bMusik.setText("on");
				setMusik("on");
			}
		
		}
		
		
		// Sound Button 
		if(e.getSource().equals(bSound)){
		
			if(getSound().equals("on ")){
				bSound.setText("off");
				setSound("off");
			}
			else{
				bSound.setText("on ");
				setSound("on ");
			}
		
		}
		
	}

	
	public void stateChanged(ChangeEvent e) {
		
		
		if(e.getSource().equals(sliderMusik)){
			JSlider source =(JSlider) e.getSource();
	    	
			if(!source.getValueIsAdjusting()){
				setGainMusik(getGainMusik());
				System.out.println(source.getValue());
				
			}
		}
		
		
		if(e.getSource().equals(sliderSound)){
			JSlider source =(JSlider) e.getSource();
	    	
			if(!source.getValueIsAdjusting()){
				setGainSound(source.getValue());
				System.out.println(getGainSound());
				
			}
		}
    	
		
	}





	
	private void setGainMusik(int gainMusik) {
		this.gainMusik = gainMusik;
	}

	private int getGainMusik() {
		return gainMusik;
	}

	private void setGainSound(int gainSound) {
		this.gainSound = gainSound;
	}

	private int getGainSound() {
		return gainSound;
	}
	
	public static void main(String[] args){
		Musik musik = new Musik();
		musik.zeige(true);
	}
	
}
```
[/quote]


----------



## JPKI (30. Apr 2007)

Versuch's mal mit setPreferredSize(new Dimension(x-Wert,y-Wert)).


----------

