我正在开发一个简单的摇摆应用程序,其中我有一个带有三个按钮的主窗口。当我点击第一个按钮时,它会打开(200,200)尺寸的新窗口。当我点击第二个按钮时,新打开的窗口的高度应该增加,当我点击第三个按钮的高度应该减少。你能帮我解决代码....
提前感谢。
答案 0 :(得分:3)
您可以在新打开的要调整大小的窗口上执行以下操作:
JFrame fr=getNewlyOpenendWindowReference(); // get a reference to the JFrame
fr.setSize(fr.getSize().getWidth() + 10,fr.getSize().getHeight() + 10);
fr.repaint();
这应该会增加JFrame长度和宽度方向的大小,每次调用10个像素。
答案 1 :(得分: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); } } }