我正在尝试实现一个按钮,以使我的JFrame和JPanel更大(按相同的数量),但它似乎不起作用。
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
更新。
答案 0 :(得分:0)
没关系,我修好了!!在按钮的ActionListener
之外,我有一个myPanel.setPreferredSize(...)
电话。我必须在ActionListener
内更新这个首选大小,即
myPanel.setPreferredSize(new Dimension(myPanelWidth, myPanelHeight+100));
谢谢!