Witam,
Jak w Swingu zaprogramowac przycisk (JButton) tak, zeby po jego kliknieciu zniknelo okno, w ktorym jest on wyswietlany? Chodzi mi o okno tylko z komunikatem i przyciskiem 'OK', po nacisnieciu ktorego okno znika.
Pozdrawiam
Witam,
Jak w Swingu zaprogramowac przycisk (JButton) tak, zeby po jego kliknieciu zniknelo okno, w ktorym jest on wyswietlany? Chodzi mi o okno tylko z komunikatem i przyciskiem 'OK', po nacisnieciu ktorego okno znika.
Pozdrawiam
Metoda dispose() klasy Window zamyka okienko.
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Window.html#dispose()
Ogólnie do komunikatów jest klasa JOptionPane...
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JOptionPane.html
Pozdrawiam,
Sylwester.
Hmmm, nie bardzo wiem jak moge zastosowac dispose() klasy Window w moim przypadku.... Kod wyglada nastepujaco:
public class WrongDataWindow extends JApplet{
private JLabel label = new JLabel("You used wrong data format!!");
private JButton button = new JButton("OK");
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
///po nacisnieciu przycisku OK okno ma zniknac!!
}
}
ButtonListener bl = new ButtonListener();
public void init() {
button.addActionListener(bl);
Box bh1 = Box.createHorizontalBox();
bh1.add(label);
Box bh2 = Box.createHorizontalBox();
bh2.add(button);
Box bv = Box.createVerticalBox();
bv.add(Box.createVerticalStrut(20));
bv.add(bh1);
bv.add(Box.createVerticalStrut(20));
bv.add(bh2);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(BorderLayout.NORTH,bv);
}
public static void main(String[] args) {
//Console.run(new WrongDataWindow(), 200, 125);
}
}
Czy da sie jakos zamknac to okno przyciskiem 'OK', nie zamykajac przy okazji poprzedniego, z ktorego to zostalo powolane do zycia i nie przerabiajac grunownie kodu?
Pozdrawiam
Jeśli to ma być okno będące częścią normalnej aplikacji to należałoby dziedziczyć po JFrame, a nie po JApplet... A listenera napisałbym jako klasę anonimową, dzięki czemu miałby on dostęp do składowych okna. Coś w stylu:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
dispose();
}
});
Mimo to nadal proponuję zapoznać się z JOptionPane.
Sylwester.