1

だから私は GUI に表示される JTextField を持っています。私がやりたいのは、誰かがEnterキーを押したときにテキストフィールドを削除することです. 私はすでに ActionListener を追加しました。最小化することなく自動的に更新する方法を知りたいだけです。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Window extends JFrame{
private JTextField TextField0;
private JTextField TextField1;
private JCheckBox CheckBox0;

//CONSTRUCTOR
public Window(){
    super("Checkbox");
    setLayout(new FlowLayout());

    TextField0 = new JTextField("Add field",15);
    add(TextField0);
    CheckBox0 = new JCheckBox("");



    HandlerClass handler = new HandlerClass();
    TextField0.addActionListener(handler);
}
    //Method: HandlerClass
public class HandlerClass implements ActionListener{
    public void actionPerformed(ActionEvent event){
        if(event.getSource()==TextField0){
            CheckBox0.setText(String.format("%s",event.getActionCommand()));
        }
    }
}
}

編集:私はそれを理解しました!:Dありがとう!

4

4 に答える 4

3

CardLayoutの使用をご覧ください。CardLayout クラスは、同じ表示スペースを共有する 2 つ以上のコンポーネント (通常は JPanel インスタンス) を管理します。

textField0checkBox0を 2に追加しJPanelsます。ActionListener通話中

checkBox0.setText(textField0.getText());

CardLayout#nextを使用して、最初のパネルから 2 番目のパネルに切り替えます。

于 2013-05-24T23:43:34.070 に答える
3

JPanel などのコンテナーにあると仮定して、remove()メソッドを使用し、パネルに再描画を要求します。

panel.remove(textField);
panel.revalidate();
panel.repaint();
于 2013-05-24T23:48:07.740 に答える
0

あなたrevalidate()repaint()コンテナが必要です。

于 2013-05-24T23:46:27.860 に答える
0

アクセス方法に応じて、JTextField の宣言を public / private に変更します。

public JTextField jtf = new JTextField();

そして、ウィンドウを作成するとき:

jtf = new JTextField();
jtf.addActionListener {
removeJTF();

JTextField を削除するには、次のコードを使用します。

public void removeJTF() {

    exampleFrame.remove(jtf);
}
于 2013-05-24T23:48:43.590 に答える