0

次の問題があります: プログラムを使用しているときに、さまざまな JPanel を時々保存する activeCenter という名前の JPanel があります。これらの JPanel には、一連の JTextfields、JLabels、および JButton があります。ここで、すべての Textfields のテキストを取得したいと考えています (量はわかっています)。私の問題は次のとおりです。for ループを使用して JPanel 内のすべてのコンポーネントを調べ、JTextfield かどうかを確認します。ここでの問題は、それが JTextField の場合、メソッド getText() をどのように使用するかということです。コンポーネントしか持っておらず、JTextField のメソッドを使用する方法がわかりません。JTextFields を配列に保存せずにこれを修正する方法はありますか? 関連するコードは次のとおりです。

button.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    for(Component c: activeCenter.getComponents())
    {
      if(c.getClass() == JTextField.class)
      {
        //use the Method getText() on c
      }
    }
  }
});
4

3 に答える 3

4

c次のようにオブジェクト をキャストする必要があります。

String text = null;
if (c instanceof JTextField) {
    text = ((JTextField)c).getText();
}

instanceofまた、条件にキーワードを使用できることにも注意してくださいif

于 2013-05-26T11:30:55.623 に答える
0

JTextField にキャストできます。

((JTextField) c).getText();

于 2013-05-26T11:31:03.560 に答える