如何在Handler中达到框架标题

时间:2011-04-16 16:40:50

标签: java

我无法在Handler中找到我的头衔。

我的代码示例:

public Frame extends JFrame {

public Frame() {
    super("Frame 1");
        .
        .
        .

我的GUI中需要一个按钮,无论何时单击它,都需要将标题从第1帧更改为第2帧,反之亦然。

ButtonHandler handler = new ButtonHandler();
        .
        .
        .
}
 class ButtonHandler implements ActionListener {
    public void actionPerformed(ActionEvent event) {
            JButton but = (JButton) event.getSource();
            if (??.getTitle(equals("Frame 1"))) {
                setTitle("Frame 2");
            } else {
                setTitle("Frame 1");
            }

所以每当我点击按钮时,它所做的只是其他部分。我不能在if:/

中使用getTitle

1 个答案:

答案 0 :(得分:2)

首先应该阅读

if (??.getTitle().equals("Frame 1"))

否则你在equals实例上调用ButtonHandler并测试,如果该实例等于字符串"Frame 1" ...

然后我会向ButtonHandler添加一个构造函数,它接受一个框架实例并在内部存储它。我的建议总计:

class ButtonHandler implements ActionListener {
  private JFrame frame;
  public ButtonHandler(JFrame frame) {
     this.frame = frame;
  }

  public void actionPerformed(ActionEvent event) {
    JButton but = (JButton) event.getSource();
    if (frame.getTitle().equals("Frame 1")) {
        setTitle("Frame 2");
    } else {
        setTitle("Frame 1");
    }
  }
}