/***这是一个Swing的基础问题,用下面的代码可以打印出JPanel的大小,
它确实是自动适应着JFrame,只要在设置JFrame的Size之后再pane.getSize()
就可以了。JFrame默认采用的是BorderLayout布局(边框布局),
frame.getContentPane().add(pane);
默认将pane添加在BorderLayout.CENTER(也就是边框布局的正中间),
在BorderLayout布局中添加的组件是会充满整个区域,
所以JPanel会自动适应着JFrame的大小。****/
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test {
private JFrame frame;
private JPanel pane;
public Test() {
frame = new JFrame("Test");
pane = new JPanel();
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(400, 300);
frame.setVisible(true);
System.out.println("width = " + pane.getSize().getWidth() + "\n\rheight = " + pane.getSize().getHeight());
}
public static void main(String[] args) {
new Test();
}
}
它确实是自动适应着JFrame,只要在设置JFrame的Size之后再pane.getSize()
就可以了。JFrame默认采用的是BorderLayout布局(边框布局),
frame.getContentPane().add(pane);
默认将pane添加在BorderLayout.CENTER(也就是边框布局的正中间),
在BorderLayout布局中添加的组件是会充满整个区域,
所以JPanel会自动适应着JFrame的大小。****/
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test {
private JFrame frame;
private JPanel pane;
public Test() {
frame = new JFrame("Test");
pane = new JPanel();
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(400, 300);
frame.setVisible(true);
System.out.println("width = " + pane.getSize().getWidth() + "\n\rheight = " + pane.getSize().getHeight());
}
public static void main(String[] args) {
new Test();
}
}