Hallo Leute,
ich habe mir ein Programm gebastelt: VerschiedeneListener
Es funktioniert alles soweit einwandfrei, bis auf eine Funktion.
Ich möchte dass wenn ich auf den Button “neues Fenster” klicke und ein neues erscheint, was auch funktioniert, dass
wenn ich nun auf das “x” zum schließen des “Nebenfensters” klicke, dass sich dann ausschließlich dieses schließt und das Hauptprogramm weiter läuft. Das funktioniert bisher nicht.
Hier mal mein Ansatz mit dem wichtigsten Code:
public class VerschiedeneListener extends JFrame
{
private static final long serialVersionUID = 1L;
JLabel darstellen,groesserkleiner;
JRadioButton arial,kursiv,fett,Groesser,Kleiner,unsichtbar,sichtbar;
JButton neuerButton,groesser,kleiner,ursprung,neuePos,anderePos,
altePos,neuSchrift,alteSchrift;
JPanel zeichnen;
JSlider groekle;
ButtonGroup bg;
JPanel p1,p2,p3;
public VerschiedeneListener()
{
setSize(400, 500);
setResizable(false);
setLayout(new GridLayout(14,1));
setTitle("Verschiedene Listener");
add(darstellen=new JLabel("Darstellen"));
add(groesserkleiner=new JLabel("Groesser/Kleiner"));
add(groekle=new JSlider(JSlider.HORIZONTAL,0,48,12));
SliderListener sl=new SliderListener();
groekle.addChangeListener(sl);
groekle.setMajorTickSpacing(4);
groekle.setMinorTickSpacing(1);
groekle.setPaintLabels(true);
groekle.setPaintTicks(true);
RadioButtonListener al=new RadioButtonListener();
bg=new ButtonGroup();
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p1.add(arial=new JRadioButton("Arial"));
arial.addActionListener(al);
arial.setActionCommand("Arial");
p1.add(kursiv=new JRadioButton("Kursiv"));
kursiv.addActionListener(al);
kursiv.setActionCommand("Kursiv");
p1.add(fett=new JRadioButton("Fett"));
fett.addActionListener(al);
fett.setActionCommand("Fett");
p1.add(Groesser=new JRadioButton("Groesser"));
Groesser.addActionListener(al);
Groesser.setActionCommand("Groesser");
p1.add(Kleiner=new JRadioButton("Kleiner"));
Kleiner.addActionListener(al);
Kleiner.setActionCommand("Kleiner");
p2.add(unsichtbar=new JRadioButton("unsichtbar"));
unsichtbar.addActionListener(al);
unsichtbar.setActionCommand("unsichtbar");
p2.add(sichtbar=new JRadioButton("sichtbar"));
sichtbar.addActionListener(al);
sichtbar.setActionCommand("sichtbar");
bg.add(arial);
bg.add(fett);
bg.add(kursiv);
bg.add(Groesser);
bg.add(Kleiner);
bg.add(unsichtbar);
bg.add(sichtbar);
add(p1);
add(p2);
ButtonListener bl=new ButtonListener();
add(neuerButton=new JButton("neues Fenster"));
neuerButton.addActionListener(bl);
neuerButton.setActionCommand("neues Fenster");
add(groesser=new JButton("groesser"));
groesser.addActionListener(bl);
groesser.setActionCommand("groesser");
add(kleiner=new JButton("kleiner"));
kleiner.addActionListener(bl);
kleiner.setActionCommand("kleiner");
add(ursprung=new JButton("ursprung"));
ursprung.addActionListener(bl);
ursprung.setActionCommand("ursprung");
add(neuePos=new JButton("neue Position"));
neuePos.addActionListener(bl);
neuePos.setActionCommand("neue Position");
add(anderePos=new JButton("andere Position"));
anderePos.addActionListener(bl);
anderePos.setActionCommand("andere Position");
add(altePos=new JButton("alte Position"));
altePos.addActionListener(bl);
altePos.setActionCommand("alte Position");
add(neuSchrift=new JButton("Schrift aendern"));
neuSchrift.addActionListener(bl);
neuSchrift.setActionCommand("Schrift aendern");
add(alteSchrift=new JButton("Schrift rueckgaengig machen"));
alteSchrift.addActionListener(bl);
alteSchrift.setActionCommand("rueckgaengig");
setVisible(true);
// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public JSlider getGroekle()
{
return this.groekle;
}
public JLabel getGroesserkleiner()
{
return this.groesserkleiner;
}
protected void processWindowEvent( WindowEvent e )
{
if( e.getID() == WindowEvent.WINDOW_CLOSING )
{
//Hier wurden schon einige Varianten ausprobiert
neuerButton.doClick(DISPOSE_ON_CLOSE);
// this.dispose();
}
}
Für Tipps, Ratschläge oder sogar Lösungen wäre ich dankbar.
lg