JTextfield和JButtons

时间:2017-11-07 18:28:09

标签: java swing jbutton jtextfield

我创建了一个带有3个JTextField的JFrame,一个按钮和一个位于页面中心的标签。我将创建一个键,如果用户在所有三个文本字段中输入“a”并按下按钮,则标签中文本的颜色应更改为不同的颜色,例如红色。

我遇到的主要问题是链接我的文本字段和按钮,以便它们一起工作。

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 个答案:

答案 0 :(得分:0)

您想测试textFields中的文本值而不是对象。

if (rgb1.getText().equals("a")&& rgb2.getText().equals("a")&& rgb3.getText().equals("a")) {
    text1.setForeground(Color.WHITE);
}