Java 当在actionListener中时,jpanel.add(组件)不起作用
我现在还在学习这个叫做swing的咒语,所以我写了这个代码Java 当在actionListener中时,jpanel.add(组件)不起作用,java,swing,jpanel,jlabel,Java,Swing,Jpanel,Jlabel,我现在还在学习这个叫做swing的咒语,所以我写了这个代码 lblWarning = new JLabel("<html>Incorrect Username or Password<br/> please try again!</html>"); lblWarning.setBounds(10,121,220,48); lblWarning.setForeground(new Color(150, 0, 0));
lblWarning = new JLabel("<html>Incorrect Username or Password<br/> please try again!</html>");
lblWarning.setBounds(10,121,220,48);
lblWarning.setForeground(new Color(150, 0, 0));
lblWarning.setBackground(new Color(255, 255, 255));
lblWarning.setFont(new Font("Tahoma", Font.BOLD, 12));
JButton btnNewButton_1 = new JButton("Confirm");
btnNewButton_1.setFont(new Font("Microsoft JhengHei", Font.BOLD, 14));
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(txtUsername.getText()!="user" && txtPassword.getText()!="pass") {
contentPane.add(lblWarning);
}else {
}
}
});
btnNewButton_1.setBounds(10, 180, 94, 23);
contentPane.add(btnNewButton_1);
lblWarning=new JLabel(“不正确的用户名或密码
请重试!”);
lblWarning.setBounds(10121220,48);
设置前景(新颜色(150,0,0));
lblWarning.setBackground(新颜色(255、255、255));
lblWarning.setFont(新字体(“Tahoma”,Font.BOLD,12));
JButton btnNewButton_1=新JButton(“确认”);
btnNewButton_1.setFont(新字体(“Microsoft JhengHei”,Font.BOLD,14));
btnNewButton_1.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
if(txtUsername.getText()!=“用户”&&txtPassword.getText()!=“通过”){
contentPane.add(lblWarning);
}否则{
}
}
});
btnewbutton_1.收进边界(10,180,94,23);
contentPane.add(btnewbutton_1);
txtusername和txtpassword是文本字段。顺便说一句,问题是contentPane(jpanel)在条件为真时不添加标签“lblWarning”,但在actionListener之外工作并显示良好,有什么问题
System.out.println(…)
语句来执行基本调试,以验证您正在语句中执行代码String.equals(…)
方法panel.revalidate()
,以调用布局管理器,从而为组件指定大小/位置按钮BtnewButton_1未添加到任何其他组件。你打算点击它吗?如果你是指这个contentPane.add(btnNewButton_1);然后它就在那里了,我只是忘了粘贴它,因为我没有使用setBounds()。Swing设计用于布局管理器。在提问时发布一个适当的帖子,以便我们更好地理解代码的上下文。对于您的第一个问题,我这样做了`BtnewButton_1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0){contentPane.add(lblWarning);}}}`它仍然不起作用3-如果您的意思是“public void actionPerformed(ActionEvent arg0){contentPane.add(lblWarning);contentPane.revalidate();}}};”它也不起作用。不要在评论中发布代码。代码不可读。更新代码,显示如何实现所有3个建议。并将代码更新为。这是你的演示后,包含框架,你的两个文本字段和按钮,所以我们可以看到你到底在做什么。我们应该能够复制/粘贴/编译和测试代码。