実行ファイルを選択してコードをテストすると、GUIアプリケーションのメニューバーが一貫して表示されません。私はNetBeans IDEバージョン7.0.1を使用しています。私は、コード内の任意の場所を選択し、マウスを右クリックし、結果のメニューからファイルを実行を選択することによって、コードをテストしています。結果のGUIアプリケーションにはメニューバーがありますが、アプリケーションを再実行するとメニューバーは表示されませんが、再実行するとメニューバーが表示されます。 おそらく、プログラムを実行するときに同じ問題が発生しているかどうかをテストできますか?私はプログラムを実行する前にパージする必要がある何らかの残存メモリがあるのでしょうか?実行ファイルでテストしたときにNetBeans GUIのデザインが矛盾する
public static void main(String[] args) {
JFrame main = new JFrame("Main");
main.setVisible(true);
main.setSize(600, 600);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints contraints = new GridBagConstraints();
main.getContentPane().add(panel, BorderLayout.NORTH);
contraints.gridx = 0;
contraints.gridy = 0;
contraints.insets = new Insets(0,0,0,0);
//Adding labels and buttons
JLabel enterUserName = new JLabel("Enter User Name:");
contraints.gridx = 0;
contraints.gridy = 1;
contraints.insets = new Insets(1, 1, 1, 1);
panel.add(enterUserName, contraints);
JLabel enterPassWord = new JLabel("Enter Password:");
contraints.gridx = 0;
contraints.gridy = 2;
contraints.insets = new Insets(1, 1, 1, 1);
panel.add(enterPassWord, contraints);
JButton logInButton = new JButton("Login");
contraints.gridx = 0;
contraints.gridy = 3;
contraints.insets = new Insets(1, 1, 1, 1);
panel.add(logInButton, contraints);
logInButton.addActionListener(new helpAbout());
//Adding menu bar and menubar items
JMenuBar menuBar = new JMenuBar();
main.setJMenuBar(menuBar);
contraints.gridx = 0;
contraints.gridy = 0;
contraints.insets = new Insets(0, 0, 0, 0);
JMenu file = new JMenu("File");
menuBar.add(file, contraints);
JMenu help = new JMenu("Help");
menuBar.add(help, contraints);
//Adding menu bar functionality
JMenuItem exit = new JMenuItem("Exit");
file.add(exit);
exit.addActionListener(new fileExit());
JMenuItem about = new JMenuItem("About");
help.add(about);
about.addActionListener(new helpAbout());
}
static class helpAbout implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JFrame test = new JFrame("About");
test.setVisible(true);
test.setSize(200, 200);
JLabel label2 = new JLabel("About");
JPanel panel2 = new JPanel();
test.add(panel2);
panel2.add(label2);
}
}
static class fileExit implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
' main.setSize(600、600)に最後のコード行でなければなりません。代わりに、すべてのGUI要素が追加され、 'setVisible(true)'が呼び出される前に 'pack()'を呼び出します。 –