关于Java窗口上的组件如何自适应窗口大小的问题:
建立一个窗口和面板
JFrame J=new JFrame("这是窗口");
JPanel p=new JPanel();
J.add(p);
//界面设置
J.setBounds(300, 200, 400, 500);
J.setVisible(true);
J.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
新建一个 按钮和一个文本框
JButton button=new JButton("这是按钮");
JJTextArea area=new JTextArea("这是文本框");
p.add(button);
p.add(area);
注意重点来了,接下就是要设置组件的大小,我采用的方法是,为窗口添加一个监听器,用来监听窗口的大小,然后组件的大小就按照窗口的大小来定义。这样一来,监听器发现窗口大小发生改变的时候就会改变setBounds()方法的参数,就可以实现组件的大小可以和窗口保持一致。
J.addComponentListener(new ComponentListener() {
//当窗口大小改变时
public void componentResized(ComponentEvent e) {
//获取窗口的大小
Dimension d = J.getSize();
//设置组件的大小
button.setBounds(0, 0, d.width, height-20);
area.setBounds(0, height-50, d.width, height-20);
}
//当窗口位置改变时
public void componentMoved(ComponentEvent e) {
// TODO Auto-generated method stub
}
//当窗口可见时
public void componentShown(ComponentEvent e) {
// TODO Auto-generated method stub
}
//当窗口不可见时
public void componentHidden(ComponentEvent e) {
// TODO Auto-generated method stub
}
});