【问题标题】:Java gui second function of frame框架的Java gui第二个功能
【发布时间】:2014-02-11 20:32:09
【问题描述】:

我需要我的程序的帮助,因为我不想在我的程序中输入密码和用户名,所以如果用户名是 test && 密码是 12345,我的程序将出现一个新框架,但不幸的是我的第二个框架不适用于我的标签,按钮等等,这是我到目前为止的代码。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SwapFields extends JFrame

{

    public static void main(String[] args)
    {
        SwapFields frameTabel = new SwapFields();
    }

        JButton blogin = new JButton("Login");
        JPanel panel = new JPanel();
        JTextField txuser = new JTextField(15);
        JPasswordField pass = new JPasswordField(15);
        JLabel lab = new JLabel("Username :");
        JLabel pas = new JLabel("Password :");
        JLabel cos;
        //JPanel panel = new JPanel();
        JButton y1;
        JButton y2;

    SwapFields()
        {
            super("Enter Your Account !");
            setSize(300,200);
            setLocation(500,280);
            panel.setLayout (null);


            txuser.setBounds(90,30,150,20);
            pass.setBounds(90,65,150,20);
            blogin.setBounds(110,100,80,20);
            lab.setBounds(15,28,150,20);
            pas.setBounds(15,63,150,20);

            panel.add(lab);
            panel.add(pas);
            panel.add(blogin);
            panel.add(txuser);
            panel.add(pass);

            getContentPane().add(panel);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            actionlogin();
        }

            public void actionlogin()
        {
            blogin.addActionListener(new ActionListener()
            {
        public void actionPerformed(ActionEvent ae)
             {
                String puname = txuser.getText();
                String ppaswd = pass.getText();
                if(puname.equals("test") && ppaswd.equals("12345"))
            {

                JFrame frame = new JFrame("Customer");
                JPanel panel1 = new JPanel();

                frame.setVisible(true);
                frame.setSize(300,200);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


                    cos = new JLabel("Do you have a Customer ?");
                    y1 = new JButton("Yes");
                    y2 = new JButton("No");


                        panel1.setLayout(null);
                        cos.setBounds(70,30,150,20);
                        y1.setBounds(80,65,150,20);
                        y2.setBounds(140,65,150,20);

                        y1.setSize(55,30);
                        y2.setSize(55,30);
                        panel1.add(y1);
                        panel1.add(y2);
                        panel1.add(cos);
                        getContentPane().add(panel1);
//

                    dispose();
            }
            else
                {

                    JOptionPane.showMessageDialog(null,"Wrong Password / Username");
                    txuser.setText("");
                    pass.setText("");
                    txuser.requestFocus();
                }

            }
        });
    }
}

【问题讨论】:

    标签: java swing jframe jpanel


    【解决方案1】:

    您将新控件/面板等添加到原始框架而不是新框架。

    getContentPane().add(panel1);
    

    应该可能正在访问新框架中的内容窗格...

    【讨论】:

    • 先生也试过了,但如果用户名和密码正确,只会出现框架。我的第二帧上没有出现任何标签
    【解决方案2】:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class NewClass extends JFrame
    
    {
    
        public static void main(String[] args)
        {
            NewClass frameTabel = new NewClass();
        }
    
            JButton blogin = new JButton("Login");
            JPanel panel = new JPanel();
            JTextField txuser = new JTextField(15);
            JPasswordField pass = new JPasswordField(15);
            JLabel lab = new JLabel("Username :");
            JLabel pas = new JLabel("Password :");
            JLabel cos;
            //JPanel panel = new JPanel();
            JButton y1;
            JButton y2;
    
        NewClass()
            {
                super("Enter Your Account !");
                setSize(300,200);
                setLocation(500,280);
                panel.setLayout (null);
    
    
                txuser.setBounds(90,30,150,20);
                pass.setBounds(90,65,150,20);
                blogin.setBounds(110,100,80,20);
                lab.setBounds(15,28,150,20);
                pas.setBounds(15,63,150,20);
    
                panel.add(lab);
                panel.add(pas);
                panel.add(blogin);
                panel.add(txuser);
                panel.add(pass);
    
                getContentPane().add(panel);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setVisible(true);
                actionlogin();
            }
    
                public void actionlogin()
            {
                blogin.addActionListener(new ActionListener()
                {
            public void actionPerformed(ActionEvent ae)
                 {
                    String puname = txuser.getText();
                    String ppaswd = pass.getText();
                    if(puname.equals("test") && ppaswd.equals("12345"))
                {
    
                    JFrame frame = new JFrame("Customer");
                    JPanel panel1 = new JPanel();
    
                    frame.setVisible(true);
                    frame.setSize(300,200);
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setLayout(new GridLayout());
    
                        cos = new JLabel("Do you have a Customer ?");
                        y1 = new JButton("Yes");
                        y2 = new JButton("No");
    
    
                            panel1.setLayout(null);
                            cos.setBounds(70,30,150,20);
                            y1.setBounds(80,65,150,20);
                            y2.setBounds(140,65,150,20);
    
                            y1.setSize(55,30);
                            y2.setSize(55,30);
                            panel1.add(y1);
                            panel1.add(y2);
                            panel1.add(cos);
    //                        panel1.setLayout(new FlowLayout());
    //                        getContentPane().add(panel1);
    //
                            frame.add(panel1);
    
                        dispose();
                }
                else
                    {
    
                        JOptionPane.showMessageDialog(null,"Wrong Password / Username");
                        txuser.setText("");
                        pass.setText("");
                        txuser.requestFocus();
                    }
    
                }
            });
        }
    }
    

    【讨论】:

    • 我将改变我的 panel1.setLayout(null);进入 setLayout(new FlowLayout()); ?我说的对吗?
    • java.lang.Error: 不要使用 SwapFields.setLayout() 使用 SwapFields.getContentPane().setLayout() 代替 javax.swing.JFrame.createRootPaneException(JFrame.java:465) 在 javax .swing.JFrame.setLayout(JFrame.java:531) 在 SwapFields$1.actionPerformed(SwapFields.java:74) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) 在 javax.swing.AbstractButton$ForwardActionEvents.actionPerformed (AbstractButton.java:1839) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    • @CoderShei 先做frame.setLayout(new FlowLayout());
    • @CoderShei 只有设置frame.setLayout(new FlowLayout()); 对我有用。并且必须在frame 中添加panel1。无需将布局设置为panel1
    • 从本站选择JDK 7u51 & NetBeans 7.4并下载oracle.com/technetwork/java/javase/downloads/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2012-10-12
    • 2019-02-28
    • 2010-09-22
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多