Java 在运行时调整JFrame中的JPanel大小
我试图实现一个按钮,使我的JFrame和JPanel都变大(数量相同),但它似乎不太管用Java 在运行时调整JFrame中的JPanel大小,java,swing,jframe,jpanel,runtime,Java,Swing,Jframe,Jpanel,Runtime,我试图实现一个按钮,使我的JFrame和JPanel都变大(数量相同),但它似乎不太管用 myPanel.setPreferredSize(new Dimension(50, 50)); button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ getContentPane().remove(myPanel); myPanel.invalid
myPanel.setPreferredSize(new Dimension(50, 50));
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
getContentPane().remove(myPanel);
myPanel.invalidate();
myPanel.setMinimumSize(new Dimension(myPanelWidth, myPanelHeight+100));
myPanel.setBounds(new Rectangle(myPanel.getBounds().getX(), myPanel.getBounds.getY(), myPanel.getBounds().getWidth(), myPanel.getBounds().getHeight+100));
getContentPane().setBounds(new Rectangle(myFrameX, myFrameY, myFrameWidth, myFrameHeight+100));
getContentPane().add(myPanel, BorderLayout.SOUTH);
System.out.println(myPanel.getBounds().getHeight());
myPanel.validate();
myPanel.repaint();
问题是我的框架大小调整得很好——它变大了100个单位,但面板没有。我不确定我是否正确地验证和重新喷漆。我做错了什么
编辑:修正!我需要一个
setPreferredSize()
更新我的ActionListener
不过,我已经解决了!!在按钮的ActionListener
之外,我有一个myPanel.setPreferredSize(…)
调用。我必须在ActionListener
中更新此首选大小,即
myPanel.setPreferredSize(new Dimension(myPanelWidth, myPanelHeight+100));
谢谢 在面板上使用LayoutManager你能发布完整的程序吗?啊,谢谢,你的帖子(@Java Learner)让我看了看ActionListener之外,注意到ActionListener内部没有更新的setPreferredSize()调用。。