单击后更改按钮文本,然后使用JAVA ActionEvent再次单击后还原更改

时间:2015-07-30 08:00:30

标签: java swing jbutton actionlistener

我正在显示我在单击按钮时更改文本所编写的代码。现在我想通过再次单击按钮来获取默认文本,但无法执行此操作。请指教。

platforms/

2 个答案:

答案 0 :(得分:1)

您可以使用if语句检查按钮的文字:

if (event.getSource() == btn1) {
    if (ta.getText().equals("Button is enabled")) {
        ta.setText("Button is Clicked");
    } else {
        ta.setText("Button is enabled");
    }
}

答案 1 :(得分:1)

您可以使用默认文本检查实际文本,例如。

JPanel pnl=new JPanel();
ImageIcon ic1=new ImageIcon("/home/mudit/Downloads/duke.png");
JButton btn1=new JButton("Click",ic1);
JTextArea ta=new JTextArea(5,37);
String defaultText = "Button is enabled";

public static void main(String[]args)   
 {
    Actions gui=new Actions();
 } 


public Actions()
 {
    super("Swing Window");
    setSize(500,300);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(pnl);
    btn1.setHorizontalTextPosition(JButton.CENTER);
    btn1.setVerticalTextPosition(JButton.BOTTOM);
    ta.setLineWrap(true);
    ta.setWrapStyleWord(true);
    pnl.add(btn1);
    pnl.add(ta);
    btn1.setEnabled(true);
    ta.setText(defaultText);
    btn1.addActionListener(this);
    setVisible(true);
}
public void actionPerformed(ActionEvent event)
 {
    if(event.getSource()==btn1)
    {
        if(ta.getText().equals(defaultText))
              ta.setText("Button is Clicked");
        else
              ta.setText(defaultText);
    }
 }   }

或者以更简单的方式使用布尔标志来执行此操作:

 JPanel pnl=new JPanel();
ImageIcon ic1=new ImageIcon("/home/mudit/Downloads/duke.png");
JButton btn1=new JButton("Click",ic1);
JTextArea ta=new JTextArea(5,37);
boolean hasBeenSet = false;

public static void main(String[]args)   
 {
    Actions gui=new Actions();
 } 


public Actions()
 {
    super("Swing Window");
    setSize(500,300);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(pnl);
    btn1.setHorizontalTextPosition(JButton.CENTER);
    btn1.setVerticalTextPosition(JButton.BOTTOM);
    ta.setLineWrap(true);
    ta.setWrapStyleWord(true);
    pnl.add(btn1);
    pnl.add(ta);
    btn1.setEnabled(true);
    ta.setText(defaultText);
    btn1.addActionListener(this);
    setVisible(true);
}
public void actionPerformed(ActionEvent event)
 {
    if(event.getSource()==btn1)
    {
        if(!hasBeenSet){
              ta.setText("Button is Clicked");
              hasBeenSet = true;
        }
        else{
              ta.setText(defaultText);
              hasBeenSet = false;
        }
    }
 }   }