JPanel
来源:互联网 发布:威海近年来人口数据 编辑:程序博客网 时间:2024/04/19 06:07
一、关于JPanel的size问题
当JPanel没有固定的size,而父组件的size变化了,父组件的变化通过什么形式可以传导到JPanel呢?我做了一些试验,结果如下:
1.当父控件不可见时,JPanel的size等于0,父控件可见后,JPanel的size也随之变化。
JFrame frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(1000, 500);JPanel panel = new JPanel();frame.add(panel);//frame.add(panel)之后。panel: width = 0, height = 0System.out.printf("frame.add(panel)之后。panel: width = %d, height = %d\n", panel.getWidth(), panel.getHeight());frame.validate();// frame.validate()之后。panel: width = 0, height = 0System.out.printf("frame.validate()之后。panel: width = %d, height = %d\n", panel.getWidth(), panel.getHeight());frame.setVisible(true);// frame.setVisible(true)之后。panel: width = 984, height = 459System.out.printf("frame.setVisible(true)之后。panel: width = %d, height = %d\n", panel.getWidth(), panel.getHeight());
2.当父控件的size变化后,父控件使用revalidate()方法后,JPanel的size也随之变化。
final JFrame frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(1000, 500);frame.setVisible(true);final JButton big = new JButton("big");final JButton small = new JButton("small");final JPanel caoZuoPanel = new JPanel();caoZuoPanel.setBackground(Color.ORANGE);caoZuoPanel.add(big);caoZuoPanel.add(small);final JPanel tuPanel = new JPanel();tuPanel.setBackground(Color.PINK);final JPanel panel = new JPanel();panel.setLayout(new BorderLayout());panel.setBackground(Color.BLACK);panel.add(caoZuoPanel, BorderLayout.NORTH);panel.add(tuPanel, BorderLayout.CENTER);frame.add(panel, BorderLayout.CENTER);frame.revalidate();frame.setVisible(true);int width = frame.getWidth();int height = frame.getHeight();System.out.printf("\n\n---------frame.setSize( %d, %d )之后-----------\n", width, height);System.out.printf("frame.getContentPane().getWidth() = %d,",frame.getContentPane().getWidth());System.out.printf("\t frame.getContentPane().getHeight() = %d\n",frame.getContentPane().getHeight());System.out.printf("tuPanel.getWidth() = %d", tuPanel.getWidth());System.out.printf("\t tuPanel.getHeight() = %d\n", tuPanel.getHeight());System.out.printf("panel: width = %d, height = %d\n",panel.getWidth(), panel.getHeight());big.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int width = frame.getWidth() + 100;int height = frame.getHeight() + 100;frame.setSize(width, height);frame.revalidate();System.out.printf("\n\n---------frame.setSize( %d, %d )之后-----------\n", width, height);System.out.printf("frame.getContentPane().getWidth() = %d,",frame.getContentPane().getWidth());System.out.printf("\t frame.getContentPane().getHeight() = %d\n",frame.getContentPane().getHeight());System.out.printf("tuPanel.getWidth() = %d", tuPanel.getWidth());System.out.printf("\t tuPanel.getHeight() = %d\n", tuPanel.getHeight());System.out.printf("panel: width = %d, height = %d\n",panel.getWidth(), panel.getHeight());}});small.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int width = frame.getWidth() - 100;int height = frame.getHeight() - 100;frame.setSize(width, height);frame.revalidate();System.out.printf("\n\n---------frame.setSize( %d, %d )之后-----------\n", width, height);System.out.printf("frame.getContentPane().getWidth() = %d,",frame.getContentPane().getWidth());System.out.printf("\t frame.getContentPane().getHeight() = %d\n",frame.getContentPane().getHeight());System.out.printf("tuPanel.getWidth() = %d", tuPanel.getWidth());System.out.printf("\t tuPanel.getHeight() = %d\n", tuPanel.getHeight());System.out.printf("panel: width = %d, height = %d\n",panel.getWidth(), panel.getHeight());}});
0 0
- jpanel
- JPanel
- JPanel
- JPanel change
- SWING Jpanel
- jpanel 切换
- JPanel绘图
- 圆角JPanel
- JInternalFrame、JPanel、JSplitPane简介
- 具有背景的JPanel
- JPanel 构造方法摘要
- ti huan JPanel
- JPanel自定义滚动条
- dynamic Jpanel loading
- 设置JPanel背景图片
- jpanel背景图片设置方法
- JToggleButton BasicArrowButton JPanel.setBorder()
- 设置JPanel背景图片
- [LeetCode293] Flip Game
- [LeetCode294]Flip Game II
- [LeetCode296]Best Meeting Point
- 题解: HDU 1254 :推箱子 (BFS)
- [LeetCode298]Binary Tree Longest Consecutive Sequence
- JPanel
- [LeetCode302]Smallest Rectangle Enclosing Black Pixels
- 模板:HDU 1242: Rescue: (BFS DFS)
- [LeetCode305]Number of Islands II
- 再谈敏捷开发的好处及敏捷外包的前景
- shell脚本的各种判断
- [LeetCode308]Range Sum Query 2D - Mutable
- 深入理解Java的接口和抽象类
- [LeetCode311]Sparse Matrix Multiplication