1

関数getText()を使用して、MyJTextFieldのユーザー入力を読み取りました。これは、無効にされたJTextFieldでは不可能に見えることに気付くまでです。

JTextField jtx = new JTextField();
jtx.setText("TEST");
jtx.setEnabled(false);
String str = jtx.getText();
System.out.println(str);

これはAnythingを返さず、DisabledJTextFieldが原因であると私は考え始めています。無効にされたJTextFieldからテキストを取得する方法はありますか?

jtx.setEditable(false);

私はこれをしたくありません。フィールドを無効にしたい。

4

2 に答える 2

3

以下のコードは期待どおりに機能します(テキストフィールドが有効か無効かをテストで出力します)-コードをEDTで実行していますか?

public static void main(String[] args) throws InterruptedException {
    Runnable r = new Runnable() {
        @Override
        public void run() {
            JTextField jtx = new JTextField();
            jtx.setText("TEST");
            System.out.println("Before: " + jtx.getText());
            jtx.setEnabled(false);
            System.out.println("After: " + jtx.getText());
        }
    };
    SwingUtilities.invokeLater(r);
}
于 2012-08-23T10:10:48.263 に答える
2

JTextField指定したコードを正確に使用して、無効になっているテキストを確実に取得できます。別の場所で問題を検索します。

于 2012-08-23T10:08:21.477 に答える