//图形用户界面 package tuxingyonhujiemian; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextField; public class Txyhjm { public static void main(String[] args) { // TODO Auto-generated method stub new MyFrame("aa"); } } @SuppressWarnings("serial") class MyFrame extends JFrame{ public MyFrame() { setTitle("no title"); init(); } public MyFrame(String s) { setTitle(s); init(); } public void init() { MyMenuBar menubar = new MyMenuBar(); MyPanel panel = new MyPanel(); //界面布局 setLayout(new FlowLayout()); setJMenuBar(menubar); add(panel); panel.init(); //是否可视 setVisible(true); //设置大小 setSize(400, 300); //设置点×号关闭即关闭程序 setDefaultCloseOperation(EXIT_ON_CLOSE); } } @SuppressWarnings("serial") class MyMenuBar extends JMenuBar{ JMenu menu1 = new JMenu("文件"); JMenu menu2 = new JMenu("文件"); JMenu menu3 = new JMenu("文件"); JMenu menu4 = new JMenu("文件"); JMenuItem menuitem1 = new JMenuItem("word"); JMenuItem menuitem2 = new JMenuItem("word"); JMenuItem menuitem3 = new JMenuItem("word"); public void init() { menu1.add(menuitem1); menu1.add(menuitem2); menu1.add(menuitem3); menu2.add(menuitem2); menu2.add(menuitem2); menu3.add(menuitem2); add(menu1); add(menu2); add(menu3); add(menu4); } } @SuppressWarnings("serial") class MyPanel extends JPanel{ public void init() { add(new JLabel("姓名:")); add(new JTextField(10)); add(new JButton("已输入")); } }为什么没有显示菜单栏
时间: 2024-01-14 08:05:19 浏览: 77
JAVA_Swing.rar_java swing_javax swing 学习
这个程序中没有调用MyMenuBar类的init方法,所以菜单栏没有被添加到界面上。你需要在MyFrame类的init方法中调用MyMenuBar类的init方法,例如在如下代码中加入menuBar.init():
```
public void init() {
MyMenuBar menubar = new MyMenuBar();
menubar.init();
MyPanel panel = new MyPanel();
//界面布局
setLayout(new FlowLayout());
setJMenuBar(menubar);
add(panel);
panel.init();
//是否可视
setVisible(true);
//设置大小
setSize(400, 300);
//设置点×号关闭即关闭程序
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
```
阅读全文