我的GUI遇到了相对简单的问题,我想打开一个JFrame作为我的应用程序的窗口,我希望它最大化并且不可调整我已经完成但是存在两个问题,首先,它似乎工作,但如果我点击并拖动标题栏它分离最大化,我已阅读所有建议并实施它但我发现这很烦人,因为我希望它保持最大化。 其次,标题栏是灰色而不是海军蓝色,因为我的所有其他应用程序的外观和感觉。 任何帮助都会受到赞赏,因为我刚开始......
我的代码是 -
公共类GUI扩展了JFrame {
public JMenuBar mainMenu;
public JMenu fileMenu;
public JMenu editMenu;
public JMenu viaPackMenu;
public JMenu viaMenuMenu;
public JMenu viaDesignMenu;
public JMenu helpMenu;
/**
*
*/
private static final long serialVersionUID = 1L;
/*
* This is the main class constructor for the GUI
*/
public GUI(){
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Via Design Package");
setFocusCycleRoot(false);
setFocusable(false);
setFocusableWindowState(false);
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
setName("DesignFrame"); // NOI18N
setEnabled(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent evt) {
GUIWindowOpened(evt);
}
});
mainMenu = new JMenuBar();
fileMenu = new JMenu("File");
editMenu = new JMenu("Edit");
viaPackMenu = new JMenu("Via Pack");
viaMenuMenu = new JMenu("Via Menu");
viaDesignMenu = new JMenu("Via Design");
helpMenu = new JMenu("Help");
mainMenu.add(fileMenu);
mainMenu.add(editMenu);
mainMenu.add(viaPackMenu);
mainMenu.add(viaMenuMenu);
mainMenu.add(viaDesignMenu);
mainMenu.add(helpMenu);
setJMenuBar(mainMenu);
}
private void GUIWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
setExtendedState(JFrame.MAXIMIZED_BOTH);
setResizable(false);
}
public static void main(String args[]){
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(GUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(GUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(GUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
}
});
}
}
GOT IT!不过要在这里发帖。
感谢您的帮助,我已经尝试了很多评论和改变,答案就是我的开始。我第一次在Netbeans中使用GUI,发现我想要更多的自由,所以在Eclipse中也是如此,但我在很大程度上复制了Netbeans生成的代码。
已生成 -
mainWindow.setFocusableWindowState(false);
需要改为true,我仍然需要进一步挖掘,因为我无法理解它为什么会想要这种行为!
我已经掌握了这一点,再次感谢......
答案 0 :(得分:0)
只能根据需要进行更改。
private void GUIWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
setExtendedState(JFrame.MAXIMIZED_BOTH);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setResizable(false);
setSize(screenSize);
}
答案 1 :(得分:0)
要使标题栏看起来像其他应用,您必须使用原生外观:
try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch (Exception e) {e.printStackTrace();}