mas*_*taH 7 java swing netbeans jpanel jframe
我想用Netbeans在Java中创建一个小游戏.现在我有一个JFrame和两个JPanel.
JFrame包含JPanel和一个按钮.我的意图是单击此按钮并调整其中一个JPanel(从0到> 0宽度).
直到现在我都试图调整帧的大小,但我无法弄清楚如何调整JPanel的大小.
这是我到目前为止所做的:
Structure
frame
|_ panel 1
|_ panel 2
|_ button
__________________
| _ _ |
| | | | | _|
| | | | | | |
| | | | | |>|
| | | | | |_|
| |_| |_| |
|__________________|
on click should expand frame and panel
______________________
| _ _____ |
| | | | | _|
| | | | | | |
| | | | | |>| ->
| | | | | |_|
| |_| |_____| |
|______________________|
Run Code Online (Sandbox Code Playgroud)
这是要调整大小的JPanel
public class ToResize extends javax.swing.JPanel {
...
public void resize(int width) {
this.setSize(new Dimension(this.getWidth() + width, this.getHeight()));
}
}
Run Code Online (Sandbox Code Playgroud)
这是带按钮的JFrame
public class MyFrame extends javax.swing.JFrame {
...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (panelToResize.getWidth() == 0) {
panelToResize.resize(100);
} else {
panelToResize.resize(-100);
}
validate();
}
}
Run Code Online (Sandbox Code Playgroud)
1)如果你也要调整JFrame的大小,那么你必须打电话
a/setPrefferedSize(getPrefferedSize()+-)forJFrame.pack();
b/setPrefferedSize(getPrefferedSize()+-)for panelToResize然后打电话JFrame.pack();
2 /如果你只改变大小中间人JPanels和JFrame大小保持仍然存在,那么你必须调用revalidate()加repaint()的panelToResize,
3 /但一切都取决于使用的LayoutManager
| 归档时间: |
|
| 查看次数: |
20590 次 |
| 最近记录: |