如何从java

时间:2018-05-28 15:48:42

标签: java

我创建了一个名为“Main”的类,每次运行它都会打开一个带有JMenuBar的窗口。然后我想点击“用户”,然后点击“学生”,然后它将打开我称为“用户”的另一个类。这是我写的代码

主:

public  class Main extends JFrame{

    Main(){
        JFrame f = new JFrame("School Application");
        JMenuItem xrhsths=new JMenuItem("Users");        
        JMenuItem Teachers=new JMenuItem("Teachers");
        JMenuItem Students=new JMenuItem("Students");
        JMenuItem Exit=new JMenuItem("Exit");
        Exit.addActionListener(new ActionListener(){
           @Override
           public void actionPerformed(ActionEvent e) {
                System.exit(0);
           }
        });
        JMenuItem Lesson=new JMenuItem("Lessons");
        JMenuItem Prerequisites=new JMenuItem("Prerequisites");
        JMenuItem Teaching=new JMenuItem("Teaching");
        JMenuItem Enrollment=new JMenuItem("Enrollment");

        JMenuBar mb = new JMenuBar();
        JMenu Persons=new JMenu("Persons");
        JMenu Lessons=new JMenu("Lessons");
        JMenu Assignements=new JMenu("Assignements");
        JMenu Print=new JMenu("Print");
        JMenu Help=new JMenu("Help");



       JLabel background=new JLabel(new ImageIcon("C:\\Users\\Zoe\\Desktop\\Project\\icons\\teicrete.jpg"));
       add(background);

        mb.add(Persons);
        mb.add(Lessons);
        mb.add(Assignements);
        mb.add(Print);
        mb.add(Help);

        Persons.add(xrhsths);
        Persons.add(Teachers);
        Persons.add(Students);
        Persons.addSeparator();
        Persons.add(Exit);

        Lessons.add(Lesson);
        Lessons.add(Prerequisites);

        Assignements.add(Teaching);
        Assignements.add(Enrollment);



        f.add(mb);
        f.add(background);
        f.setJMenuBar(mb);
        f.setVisible(true);
        f.setSize(600,365);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setResizable(false);

    }


    public static void main(String[]args){

            new Main();
        }



    }

用户:

public class Users extends JFrame {


    public Users(){

   initComponents();

}

    public void initComponents(){

JFrame f= new JFrame("Users");
JMenuBar mb=new JMenuBar();
JMenu first = new JMenu();
first.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\first16.png"));
JMenu previous =new JMenu();
previous.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\previous16.png"));
JMenu next = new JMenu();
next.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\next16.png"));
JMenu last = new JMenu();
last.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\last16.png"));
JMenu add = new JMenu();
add.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\add16.png"));
JMenu cancel = new JMenu();
cancel.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\cancel16.png"));
JMenu ok = new JMenu();
ok.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\ok16.png"));
JMenu modify = new JMenu();
modify.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\modify16.png"));
JMenu delete = new JMenu();
delete.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\delete.png"));
JMenu refresh = new JMenu();
refresh.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\refresh16.png"));
JMenu search = new JMenu();
search.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\search16.png"));
JMenu replicate = new JMenu();
replicate.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\replicate16.png"));
JMenu table = new JMenu();
table.setIcon(new ImageIcon("C:\\Users\\Zoe\\Desktop\\JavaProject\\icons\\table16.png"));


mb.add(first);
mb.add(previous);
mb.add(next);
mb.add(last);
mb.add(add);
mb.add(cancel);
mb.add(ok);
mb.add(modify);
mb.add(delete);
mb.add(refresh);
mb.add(search);
mb.add(replicate);
mb.add(table);

JPanel p = new JPanel(new GridLayout(6,2));
p.setBorder(BorderFactory.createTitledBorder("Users"));

JLabel jl1= new JLabel("Serial");
jl1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JTextField tf1=new JTextField();
tf1.setEditable(false);
JLabel jl2 = new JLabel("Lastname");
jl2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JTextField tf2=new JTextField();
JLabel jl3 = new JLabel("Firstname");
jl3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JTextField tf5=new JTextField();
JLabel jl4 = new JLabel("Email");
jl4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JTextField tf3=new JTextField();
JLabel jl5 = new JLabel("Login");
jl5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JTextField tf4=new JTextField();
JLabel jl6 = new JLabel("Password");
jl6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
JPasswordField pf = new JPasswordField();


p.add(jl1);
p.add(tf1);
p.add(jl2);
p.add(tf2);
p.add(jl3);
p.add(tf5);
p.add(jl4);
p.add(tf3);
p.add(jl5);
p.add(tf4);
p.add(jl6);
p.add(pf);
add(p);
pack();







 f.add(mb);
 f.setJMenuBar(mb);
 f.add(p);
 f.setVisible(true);
 f.setSize(375,410);
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 f.setLocationRelativeTo(null);


}

    public static void main(String[]args){

    new Users();
}}

我试图在main中添加一个actionListener,但它没有用。

xrhsths.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent t){
                 if(xrhsths.isSelected()){


                      Users userObject = new Users();
                    userObject.initComponents();



                 }
            }
        });

有没有人知道如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

你现在拥有什么:

xrhsths.addActionListener(new ActionListener(){
                @Override
                public void actionPerformed(ActionEvent t){
                    //gets there when clicked

                    if (xrhsths.isSelected()) {
                        //never gets there
                        //once you click, the menu is instantly closed, so it's not selected anymore
                        //remove this "if" statement

                        Users userObject = new Users();
                        userObject.initComponents();
                    }
                }
            });

这段代码就足够了:

xrhsths.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent t) {
                        Users userObject = new Users();
                        userObject.initComponents();
                    }
                });