Wie kann ich, den CloseButton eines JInternalFrame mit eigenen Funktionen hinterlegen wie ich auch bei JFrame mit
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {}
});
mache?
Wie kann ich, den CloseButton eines JInternalFrame mit eigenen Funktionen hinterlegen wie ich auch bei JFrame mit
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {}
});
mache?
ein Blick in die API Doc hätte dir http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JInternalFrame.html#addInternalFrameListener(javax.swing.event.InternalFrameListener)) gezeigt
Hier mal ein ausprogrammiertes Beispiel:
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class JInternalFrameTest extends JFrame {
public JInternalFrameTest(String title) {
super(title);
setSize(800, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JInternalFrame frame = new JInternalFrame("TestFrame", true, true, true, true);
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
frame.setBounds(20, 20, 400, 300);
frame.addInternalFrameListener(new InternalFrameAdapter() {
public void internalFrameClosing(InternalFrameEvent e) {
int answer = JOptionPane.showConfirmDialog(frame,
"Wirklich schließen?",
"Schließen",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
switch(answer) {
case JOptionPane.YES_OPTION:
frame.dispose();
}
}
});
frame.setVisible(true);
JDesktopPane pane = new JDesktopPane();
pane.add(frame);
add(pane);
}
class InternalFrameAdapter implements InternalFrameListener {
public void internalFrameActivated(InternalFrameEvent e) {}
public void internalFrameClosing(InternalFrameEvent e) {}
public void internalFrameIconified(InternalFrameEvent e) {}
public void internalFrameDeiconified(InternalFrameEvent e) {}
public void internalFrameDeactivated(InternalFrameEvent e) {}
public void internalFrameOpened(InternalFrameEvent e) {}
public void internalFrameClosed(InternalFrameEvent e) {}
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {}
new JInternalFrameTest("JInternalFrameTest").setVisible(true);
}
}```
Vielen Dank, das hat funktioniert.
Eagle, und ein Blick in die Api, löst nicht immer alle Fragen.