D
Du kannst immerhin dafür dorgen, dass ein click auf X nichts bewirkt mit
JFrame.setDefaultCloseOperation(avax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
und ausserdem musst du das System.exit(0) aus folgendem Code entfernen:
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
System.exit(0);
}
Oder aber du benutzt ein Würgaround wie das hier:
import java.awt.*;
import javax.swing.*;
public class FrameTest extends JFrame {
public FrameTest() {
initComponents();
setSize(400,400);
}
private void initComponents() {
jInternalFrame1 = new javax.swing.JInternalFrame();
jPanel2 = new javax.swing.JPanel();
getContentPane().setLayout(null);
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jInternalFrame1.setTitle("FrameTest");
jInternalFrame1.setVisible(true);
jInternalFrame1.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentMoved(java.awt.event.ComponentEvent evt) {
jInternalFrame1ComponentMoved(evt);
}
});
jInternalFrame1.getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
getContentPane().add(jInternalFrame1);
jInternalFrame1.setBounds(0, 0, 400, 400);
pack();
}
private void jInternalFrame1ComponentMoved(java.awt.event.ComponentEvent evt) {
setLocationRelativeTo(jInternalFrame1);
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new FrameTest().show();
}
private javax.swing.JInternalFrame jInternalFrame1;
private javax.swing.JPanel jPanel2;
}