1

Java イベント、リスナー、およびハンドラーは初めてです。ボタン クリック イベントと動作する結果を作成するコードを記述できます。ただし、TextField 内で単純な enter イベントを機能させることはできません。

アクションリスナー、入力ハンドラーを宣言して呼び出し、結果のメソッド実行を定義していることに注意してください。(以下に示されていない java.awt および javax.swing ライブラリをインポートします。)

public convertStringToCapitalLetters() {
    setTitle("Convert String to All Capital Letters");
    Container c = getContentPane();
    c.setLayout(new GridLayout(2, 2));

    inputLabel = new JLabel("Enter String: ", SwingConstants.LEFT);
    stringTextField = new JTextField(50);
    outputLabel = new JLabel("Capitalized String: ", SwingConstants.LEFT);
    newStringLabel = new JLabel("", SwingConstants.RIGHT);

    c.add(inputLabel);
    c.add(stringTextField);
    c.add(outputLabel);
    c.add(newStringLabel);

    inputHandler = new InputHandler();

    stringTextField.addActionListener(inputHandler);

    setSize(WIDTH, HEIGHT);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
}

private class InputHandler implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        String str, newStr;

        str = stringTextField.getText();
        newStr = str.toUpperCase();

        newStringLabel.setText(String.format("", newStr));
    }
}

public static void main(String[] args) {
    convertStringToCapitalLetters capitalConv = new convertStringToCapitalLetters();
}
4

2 に答える 2

3

%sプレースホルダーを指定するのを忘れるという非常に小さな間違いをしたと思いますString.format()

これを試して:

newStringLabel.setText(String.format("%s", newStr));
于 2012-10-25T22:19:59.367 に答える
2

String.format("", newStr)ラベルのテキストを設定するときに呼び出しは必要ありません。単に使用できます

newStringLabel.setText(newStr);
于 2012-10-25T22:22:28.650 に答える