E
equin2
Gast
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...
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);
}
}