2010-10-08 105 views
4

我正在开发一个简单的摆动应用程序,其中我有一个带有三个按钮的主窗口。当我点击第一个按钮时,它会打开(200,200)尺寸的新窗口。当我点击第二个按钮时,新打开的窗口的高度应该增加,当我点击第三个按钮时,高度应该减小。你能帮我用代码....如何增加/减少点击事件窗口大小?

在此先感谢。

回答

3

你可以做以下的要调整新打开的窗口:

JFrame fr=getNewlyOpenendWindowReference(); // get a reference to the JFrame 
fr.setSize(fr.getSize().getWidth() + 10,fr.getSize().getHeight() + 10); 
fr.repaint(); 

这应该由每个呼叫的10个像素增加的JFrame长度的大小和宽度。

+1

或者,如果您希望增长不总是在框架的右侧和底部,可以使用'setBounds'。 – 2010-10-08 11:38:49

0

创建一个Controller类来处理动作事件。

定义一个FramePanel extends JPanel并添加您的按钮。使用操作事件值在类中设置常量并将它们设置在按钮上。然后,您可以实例化此FrameController并将其作为侦听程序添加到使用JButton.addActionListener()的这些按钮。或者,您可以在FrameController类的构造函数中执行此操作。

 
public class FrameController implements ActionListener { 
    private JFrame openedFrame; 

    public static final int MINIMUM_HEIGHT = 200; 

    public FrameController(FramePanel panel) { 
    this.panel.getOpenFrameButton().addActionListener(this); 
    this.panel.getIncreaseHeightButton().addActionListener(this); 
    this.panel.getDecreaseHeightButton().addActionListener(this); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
    String action = e.getActionCommand(); 
    if (action.equals(FramePanel.ACTION_OPEN_FRAME)) { 
     this.openedFrame = new JFrame(); 
     // set it up how you want it 
    } else if (action.equals(FramePanel.ACTION_INCREASE_HEIGHT)) { 
     this.openedFrame.setSize(this.openedFrame.getWidth(), this.openedFrame.getHeight() + 10); 
    } else if (action.equals(FramePanel.ACTION_INCREASE_HEIGHT)) { 
     int newHeight = this.openedFrame.getHeight() - 10; 
     if (newHeight < FrameController.MINIMUM_HEIGHT) 
     newHeight = FrameController.MINIMUM_HEIGHT; 
     this.openedFrame.setSize(this.openedFrame.getWidth(), newHeight); 
    } 
    } 
} 
+0

嗨,听起来不错,但我得到错误。“在类中设置常量与行动事件的价值观,并将它们设置在您的按钮”。我没有得到这个part.plz告诉我indetail。 – sheetal 2010-10-08 13:08:07

+0

在FramePanel类中声明'public static final String ACTION_OPEN_FRAME =“OpenFrame”;''。然后,在按钮上,调用'this.openFrameButton.setActionCommand(FramePanel.ACTION_OPEN_FRAME);'这将确保当按钮被按下时,该命令被发送到监听器,因此监听器知道*哪个*按钮被按下。 – 2010-10-08 13:22:25