【发布时间】:2015-10-09 13:23:00
【问题描述】:
我在 JFrame 中有一个 JPanel 和一个 Applet,我试图像这样对齐它们:
我几乎要为此脱发,因为它似乎很难对齐......
这是我真正的sn-p:
JFrame 打开的很小,只有一个按钮。
final JFrame f = new JFrame();
JPanel appletPanel = new JPanel();
appletPanel.setBackground(Color.RED);
JPanel menuPanel = new JPanel();
menuPanel.setBackground(Color.BLUE);
f.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
// f.setExtendedState(JFrame.MAXIMIZED_BOTH);
// f.setResizable(false);
int w = Toolkit.getDefaultToolkit().getScreenSize().width;
int h = Toolkit.getDefaultToolkit().getScreenSize().height;
f.setSize(Toolkit.getDefaultToolkit().getScreenSize());
VNCApplet applet = new VNCApplet();
menuPanel.add(new JButton("TEST"));
appletPanel.setSize((int)(w*0.7),h);
menuPanel.setSize((int)(w*0.3),h);
c.gridx = 0;
c.gridy = 0;
f.getContentPane().add(appletPanel,c);
c.gridx = 0;
c.gridy = 1;
f.getContentPane().add(menuPanel,c);
f.pack();
applet.init();
applet.start();
f.setVisible(true);
非常感谢您的关注!
【问题讨论】:
-
1)
f.pack(); applet.init(); applet.start(); f.setVisible(true);应该是applet.init(); applet.start(); f.pack(); f.setVisible(true);调用pack()会将框架设置为显示其包含的组件所需的最小尺寸。但直到调用init()方法,小程序才会添加组件。 2) 为了尽快获得更好的帮助,请发布minimal reproducible example 或Short, Self Contained, Correct Example。 3)见Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?(是的。)
标签: java swing applet jpanel layout-manager