JButtons 无法出现在 JFrame 中
我有在 JFrame 中显示菜单和 4 个 JButton 的代码。我昨晚测试了代码,一切正常。现在 JButtons 今天早上没有出现在 JFrame 中。我尝试在 Eclipse 中进行操作,但仍然得到相同的结果。
我得到的输出:
我的代码:
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;
public class Control {
//JFrame
JFrame main = new JFrame();
//MenuBar
JMenuBar menuBar = new JMenuBar();
//Adding the menu
JMenu fileMenu = new JMenu("File");
JMenu functionMenu = new JMenu("Function");
JMenu helpMenu = new JMenu("Help");
//Adding the Menu Item
JMenuItem addFlight = new JMenuItem("Add Flight");
JMenuItem exit = new JMenuItem("Exit");
JMenuItem landFlight = new JMenuItem("Land Flight");
JMenuItem virtualPath = new JMenuItem("Virtual Path");
JMenuItem flightDetails = new JMenuItem("Flight Details");
JMenuItem about = new JMenuItem("About ...");
//JPanel
JPanel pnlButton = new JPanel();
//Buttons
JButton btnAddFlight = new JButton("Add Flight");
JButton btnLandFlight = new JButton("Land Flight");
JButton btnVirtualPath = new JButton("Virtual Path");
JButton btnFlightDetails = new JButton("Flight Details");
public Control() {
//Adding to the file menu
fileMenu.add(addFlight);
fileMenu.add(exit);
//Adding to the function menu
functionMenu.add(landFlight);
functionMenu.add(virtualPath);
functionMenu.add(flightDetails);
//Adding to the help menu
helpMenu.add(about);
exit.add(new JSeparator());
flightDetails.add(new JSeparator());
//Adding the Menus to the Menu Bar
menuBar.add(fileMenu);
menuBar.add(functionMenu);
menuBar.add(helpMenu);
//FlightInfo setbounds
btnAddFlight.setBounds(30, 30, 120, 30);
btnLandFlight.setBounds(30, 80, 120, 30);
btnVirtualPath.setBounds(30, 130, 120, 30);
btnFlightDetails.setBounds(30, 180, 120, 30);
//JPanel bounds
pnlButton.setLayout(null);
//Adding to JFrame
pnlButton.add(btnAddFlight);
pnlButton.add(btnLandFlight);
pnlButton.add(btnVirtualPath);
pnlButton.add(btnFlightDetails);
main.add(pnlButton);
// JFrame properties
main.setJMenuBar(menuBar);
main.setLayout(null);
main.setBackground(Color.red);
main.setSize(800, 300);
main.setTitle("Air Traffic Control");
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setVisible(true);
//Adding the actionlistener
//btnAddFlight.addActionListener(new AddFlight());
//btnLandFlight.addActionListener(new LandFlight());
}
public static void main(String[] args) {
new Control();
}
}
我想让 JButtons 出现在 JFrame 上。
非常感谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该将小部件 (pnlButton) 直接添加到 JFrame,您需要将它们添加到自动创建的子面板(称为内容窗格)。要获取内容窗格,请执行
以下操作,然后执行
顺便说一句,使用具有绝对定位的空布局通常是一个坏主意。
You shouldn't add widgets (pnlButton) directly to the JFrame, you need to add them to a sub panel that is automatically created for you called the content pane. To get the content pane do
so then do
It's typically a bad idea to use a null layout with absolute positioning, btw.
使用 GridBagLayout 而不是空布局。
请访问以下链接以供参考
http://www.java2s.com/Code/Java/Swing- JFC/WorkGridBagConstraints3.htm
http://download.oracle.com/文档/cd/E17409_01/javase/tutorial/uiswing/layout/gridbag.html
Use GridBagLayout instead of null layout.
visit the following links for reference
http://www.java2s.com/Code/Java/Swing-JFC/WorkGridBagConstraints3.htm
http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/gridbag.html