是否可以在Swing

时间:2016-11-19 22:21:08

标签: java swing jtextfield

好的,这就是我有的东西

jTextField1.setBounds(136, 24, 17, 17);
jTextField1.setEditable(false);
jTextField1.setText("x");
jTextField1.setBorder(javax.swing.BorderFactory.createEmptyBorder());
jTextField1.setHorizontalAlignment(SwingConstants.CENTER);
jTextField1.setFont(new Font("Dialog", Font.PLAIN, 16));
jTextField1.setBackground(Color.WHITE);
jTextField1.setOpaque(false);
cp.add(jTextField1);

[...]

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "+") {
plus = true; // [...]

如果e.getActionCommand()= +我想更改jTextField的文本。那可能吗?有什么替代品? thx提前

1 个答案:

答案 0 :(得分:-1)

编辑:您已经使用了JTextField的setText()方法。为了能够从ActionListener的ActionPerformed()方法中访问JTextField,JTextField变为全局。

ActionLister及其代码可能如下所示:

    package jTextField;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class SetTextOfJTextField extends JFrame implements ActionListener{

    boolean plus = false;
    JPanel panel = new JPanel();
    JTextField jTextField1; 

    public static void main(String[] args){
        new SetTextOfJTextField();  
    }

    public SetTextOfJTextField(){

        this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );


    jTextField1 = new JTextField(10);

    jTextField1.setEditable(false);
    jTextField1.setText("x");
    jTextField1.setBorder(javax.swing.BorderFactory.createEmptyBorder());

    jTextField1.setBackground(Color.WHITE);

    jTextField1.addActionListener(this);
    jTextField1.setEditable(true); // this is necessary so the text can be changed by the user!

    JButton button = new JButton("OK");
    button.addActionListener(this);


    /* configure JFrame / Jpanel*/
    panel.add(jTextField1);
    panel.add(button);
    this.add(panel);
    this.pack();
    this.setSize(200,200);
    this.setVisible(true);
    }


    public void actionPerformed(ActionEvent e) {
        System.out.println("ouch! dont click me!");
        if (jTextField1.getText().equals("+")) {
            plus = true;
            System.out.println("received plus!");
            // change text of jTextField1
            jTextField1.setText("hi i am new text!");
        } 
        else{
            jTextField1.setText("");
        }
   }
   }

现在运行代码。如果在“文本字段”中输入+号并按“确定”,则文本将更改。再次按下OK按钮,文本将被重置。 快乐的编码!