第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 JButton 中執(zhí)行 ActionEvent 需要雙擊

在 JButton 中執(zhí)行 ActionEvent 需要雙擊

不負相思意 2021-10-17 15:34:33
我使用 JFrame 創(chuàng)建了一個簡單的登錄框架。我有硬編碼驗證,其中如果用戶輸入用戶名作為AKASH和密碼作為12345然后登錄成功顯示在按鈕下方,否則顯示錯誤密碼。一切正常。唯一的事情是:輸入詳細信息后,我必須雙擊才能看到結(jié)果任何人都可以幫我解決這個問題。這是我的代碼:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class LginForm extends JFrame implements ActionListener{    Container c;    JTextField jt;    JButton jb;    JPasswordField jp;    JLabel jl1,jl2;    JLabel jl3 = new JLabel("Wrong Password");    JLabel jl4 = new JLabel("Login Successful");    public static void main(String[] args) {        LginForm lf = new LginForm();        lf.setBounds(100, 50, 500, 400);        lf.setVisible(true);        lf.setDefaultCloseOperation(EXIT_ON_CLOSE);    }    public LginForm() {        c = this.getContentPane();        c.setBackground(Color.yellow);        c.setLayout(null);        jl1 = new JLabel("Enter Username");        jl1.setBounds(50, 10, 100, 30);        jl1.setFont(new Font(Font.SANS_SERIF, Font.ITALIC, 12));        jl2 = new JLabel("Enter Password");        jl2.setBounds(50, 100, 100, 30);        jl2.setFont(new Font(Font.SANS_SERIF, Font.ITALIC, 12));        jt = new JTextField();        jt.setBounds(200,10,100,30);        jp = new JPasswordField();        jp.setBounds(200,100,100,30);        jb = new JButton("login");        jb.setBounds(130,180,80,30);        c.add(jl1);        c.add(jl2);        c.add(jt);        c.add(jp);        c.add(jb);        jb.addActionListener(this);    }    @Override    public void actionPerformed(ActionEvent event) {        if(event.getSource() == jb) {            String usrname = jt.getText();            String passwrd = String.valueOf(jp.getPassword());            if(usrname.equals("Akash") && passwrd.equals("12345")) {                jl4.setBounds(100, 230, 150, 40);                jl4.setFont(new Font(Font.SANS_SERIF, Font.ITALIC, 12));                c.add(jl4);                c.remove(jl3);            }
查看完整描述

1 回答

?
慕碼人2483693

TA貢獻1860條經(jīng)驗 獲得超9個贊

c.add(jl4);

c.remove(jl3);

我猜想在從面板添加/刪除組件后,您需要調(diào)用repaint()面板。


這只是一個猜測,因為您不應(yīng)該使用空布局。Swing 旨在與布局管理器一起使用。讓布局管理器根據(jù)布局管理器的規(guī)則確定組件的大小/位置。


然后,當您從面板中添加/刪除組件時,基本邏輯將是:


panel.remove(...);

panel.add(...);

panel.revalidate();

panel.repaint();

閱讀有關(guān)使用布局管理器的 Swing 教程以獲取更多信息。


筆記:

我還建議一個更簡單的解決方案是將“消息標簽”添加到面板,并將文本設(shè)置為“”。然后你可以簡單地使用setText(...)標簽的方法來改變消息。這樣您甚至無需擔心添加/刪除組件。


查看完整回答
反對 回復 2021-10-17
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號