[通过按下Java swing按钮添加另一个标签

问题描述 投票:0回答:1

我是一个初学者,在按按钮时添加标签时遇到问题,因为我按按钮b1时给出的代码应该打印标签1或标签2,但不打印任何内容,无法理解为什么会发生]

  import javax.swing.*; 
  import java.awt.*;
  import java.awt.event.*;  
  public class passField extends JFrame implements ActionListener
  { 
    private JPasswordField pass;
    private JButton b1;
    private JLabel l,l0;
    private JLabel l1;
    private JLabel l2;

    String password; 
    Container c;
    passField()
    {
       password="pass3word";
       c=super.getContentPane(); 
       pass=new JPasswordField(20);
       b1=new JButton("OK");
       l=new JLabel("Enter Password: ");
       l1=new JLabel("PASSWORD MATCH");
       l2=new JLabel("INCORRECT PASSWORD");
       Font f=new Font("SERIF",Font.PLAIN,22);
       l0=new JLabel("PASSWORD CHECKER");
       l1.setFont(f);
       l2 .setFont(f);
       l0.setFont(f);
       l0.setForeground(Color.WHITE);
       l.setForeground(Color.WHITE);
       l1.setForeground(Color.WHITE);
       l2.setForeground(Color.WHITE);
       add(l0);
       add(l);
       add(pass);
       add(b1);
       b1.addActionListener(this);
       setVisible(true);
       setSize(400,400);
       setLayout(new FlowLayout());
       c.setBackground(Color.BLACK);
    } 
    public void actionPerformed(ActionEvent e)
    { 
        if(password==pass.getText())
            add(l1);
        else
          add(l2);
    }

}enter image description here

java
1个回答
0
投票

建议进行以下更改:1.在标签前添加,然后相应地更改文本2.替换不赞成使用的getText()

import javax.swing.*; 
import java.awt.*;
import java.awt.event.*;  
public class passField extends JFrame implements ActionListener
{ 
private JPasswordField pass;
private JButton b1;
private JLabel l,l0;
private JLabel l1;
private JLabel l2;

String password; 
Container c;
passField()
{
   password="pass3word";
   c=super.getContentPane(); 
   pass=new JPasswordField(20);
   b1=new JButton("OK");
   l=new JLabel("Enter Password: ");
   l1=new JLabel("PASSWORD MATCH");
   l1.setText("nothing");
   l2=new JLabel("INCORRECT PASSWORD");
   Font f=new Font("SERIF",Font.PLAIN,22);
   l0=new JLabel("PASSWORD CHECKER");
   add(l1);
   l1.setFont(f);
   l2 .setFont(f);
   l0.setFont(f);
   l0.setForeground(Color.WHITE);
   l.setForeground(Color.WHITE);
   l1.setForeground(Color.WHITE);
   l2.setForeground(Color.WHITE);
   add(l0);
   add(l);
   add(pass);
   add(b1);
   b1.addActionListener(this);
   setVisible(true);
   setSize(400,400);
   setLayout(new FlowLayout());
   c.setBackground(Color.BLACK);
} 
public void actionPerformed(ActionEvent e)
{ 
    String outPass = new String(pass.getPassword());
    System.out.println(password+"\n"+outPass);
    if(password.equals(outPass))   
        l1.setText("PASSWORD MATCH");   
    else
        l1.setText("INCORRECT PASSWORD");

}
public static void main(String args[])
{
    new passField();
}
}
© www.soinside.com 2019 - 2024. All rights reserved.