JTextfield и JButtons

Я создал JFrame с 3 JTextFields, кнопкой и меткой в ​​центре страницы. Я создам ключ, в котором, если пользователь вводит "а" во всех трех текстовых полях и нажимает кнопку, цвет текста в метке должен измениться на другой цвет, например красный.

Основная проблема, с которой я столкнулся - это связать мои текстовые поля и кнопку, чтобы они работали вместе.

import java.awt.BorderLayout;
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.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class CE203_2017_Ex1 extends JFrame

{
     public static void window()
        {
            //Button
            JButton but  = new JButton("Submit");
            //JNumberTextField
            JTextField rgb1 = new JTextField("",3);
            JTextField rgb2 = new JTextField("",3);
            JTextField rgb3 = new JTextField("",3);
            //JLabel
            JLabel text1 = new JLabel("hello my name is adam ", JLabel.CENTER);
            text1.setForeground(Color.BLUE);
            text1.setAlignmentX(0);
            text1.setAlignmentY(0);
            //JFrame
            JFrame window1 = new JFrame("Adam");
            window1.setVisible(true);
            window1.setSize(500,500);
            window1.add(text1);
            //JPanel
            JPanel butPanel = new JPanel();
            butPanel.add(rgb1);
            butPanel.add(rgb2);
            butPanel.add(rgb3);
            butPanel.add(but);

            window1.add(butPanel, BorderLayout.SOUTH);
            window1.add(text1);

Вот мой actionlistener для кнопки

 but.addActionListener(new ActionListener(){

                public void actionPerformed(ActionEvent e) {
                    JTextField input = (JTextField) e.getSource();
                    String passy = input.getText();
                    String p = new String (passy);

                    if (rgb1.equals("a")&& rgb2.equals("a")&& rgb3.equals("a")){
                        text1.setForeground(Color.WHITE);
                    }
                    else{
                        JOptionPane.showMessageDialog(null, "nocorrect");}}});
          }
     public static void main( String[] args )
        {
            window();

        }
}

1 ответ

Вы хотите проверить текстовое значение в textFields, а не объекты.

if (rgb1.getText().equals("a")&& rgb2.getText().equals("a")&& rgb3.getText().equals("a")) {
    text1.setForeground(Color.WHITE);
}
Другие вопросы по тегам