从Eclipse中的jInternalFrame启用/禁用主框架上的按钮

时间:2014-07-08 16:15:37

标签: java eclipse swing

正如我在标题中所说,我正在为java中的一个小程序编写代码。我使用内部框架来实现它。问题是我正在尝试为程序添加登录选项。登录类是一个jInternalFrame,我希望它在我的主窗口中启用/禁用特定按钮。我尝试谷歌解决方案,但似乎没有找到它。 (请记住,我对编程很陌生,所以我希望我的代码中可能还有其他问题,我目前看不到。)

主窗口代码:

import javax.swing.JDesktopPane;


public class FereastraPrincipala extends JFrame {

private static final long serialVersionUID = 1L;
JDesktopPane jdpDesktop;
static int openFrameCount = 0;

public FereastraPrincipala() {
    super("Fereastra Principala");
    // Make the main window positioned as 50 pixels from each edge of the
    // screen.
    int inset = 50;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(inset, inset, screenSize.width - inset * 2,screenSize.height - inset * 2);
    // Add a Window Exit Listener
    addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
    // Create and Set up the GUI.
    jdpDesktop = new JDesktopPane();
    // A specialized layered pane to be used with JInternalFrames
    setContentPane(jdpDesktop);
    setJMenuBar(createMenuBar());
    // Make dragging faster by setting drag mode to Outline
    jdpDesktop.putClientProperty("JDesktopPane.dragMode", "outline");
}
private JMenuBar createMenuBar() {
    JMenuBar menuBar = new JMenuBar();
    JMenu mnFile = new JMenu("File");
    mnFile.setMnemonic(KeyEvent.VK_F);
    JMenuItem mntmLogin = new JMenuItem("Login");
    mnFile.add(mntmLogin);
    mntmLogin.setMnemonic(KeyEvent.VK_N);
    menuBar.add(mnFile);    
    mntmLogin.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            login();
        }
    });
    JMenuItem mntmLogout = new JMenuItem("Logout");
    mnFile.add(mntmLogout); 
    mntmLogout.setEnabled(true);

    JMenuItem mntmCreazaUser = new JMenuItem("Creaza User");
    mntmCreazaUser.setMnemonic(KeyEvent.VK_C);
    mnFile.add(mntmCreazaUser);
    mntmCreazaUser.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
              creazaUser();
          }
        });


    JMenuItem mntmExit = new JMenuItem("Exit");
    mntmExit.setMnemonic(KeyEvent.VK_X);
    mnFile.add(mntmExit);
    mntmExit.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            System.exit(0);
          }
        });

    JMenu mnAdministrator = new JMenu("Administrator");
    mnAdministrator.setMnemonic(KeyEvent.VK_N);
    menuBar.add(mnAdministrator);
    mnAdministrator.setEnabled(true);

    JMenu mnPresedinte = new JMenu("Presedinte");
    mnPresedinte.setMnemonic(KeyEvent.VK_P);
    menuBar.add(mnPresedinte);
    mnPresedinte.setEnabled(true);

    JMenuItem mnHelp = new JMenuItem("Help");
    mnHelp.setMnemonic(KeyEvent.VK_H);
    menuBar.add(mnHelp);
    mnHelp.setEnabled(true);
    mnHelp.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
           help();
          }
        });

    return menuBar;
}

protected void login() {
    Login frame = new Login();
    frame.setVisible(true);
    // Every JInternalFrame must be added to content pane using JDesktopPane
    jdpDesktop.add(frame);
    try {
        frame.setSelected(true);
    } catch (java.beans.PropertyVetoException e) {
    }
}

protected void help() {
    Help frame1 = new Help();
    frame1.setVisible(true);
    jdpDesktop.add(frame1);
    try {
        frame1.setSelected(true);
    } catch (java.beans.PropertyVetoException e) {
    }
}

protected void creazaUser() {
    CreazaUser frame = new CreazaUser();
    frame.setVisible(true);
    jdpDesktop.add(frame);
    try {
        frame.setSelected(true);
    } catch (java.beans.PropertyVetoException e) {
    }
}


public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
    FereastraPrincipala frame = new FereastraPrincipala();
    frame.setVisible(true);     
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    }
}

登录类代码:

import java.awt.EventQueue;


public class Login extends JInternalFrame {
private static Login instance = null;
private JTextField textField;
private JPasswordField passwordField;

public static Login getInstance(){
    if(instance == null) {instance = new Login(); }
    return instance;
}

 public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Login frame = new Login();
                    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

public Login() {
    super("Login", false, true, false, false);
    setVisible(true);
    setBounds(200, 200, 290, 173);

    JPanel panel = new JPanel();
    getContentPane().add(panel, BorderLayout.CENTER);
    panel.setLayout(null);

    JLabel lblNewLabel = new JLabel("Username:");
    lblNewLabel.setBounds(22, 29, 79, 14);
    panel.add(lblNewLabel);

    JLabel label = new JLabel("Parola:");
    label.setBounds(22, 54, 79, 14);
    panel.add(label);

    textField = new JTextField();
    textField.setColumns(10);
    textField.setBounds(123, 26, 98, 20);
    panel.add(textField);

    passwordField = new JPasswordField();
    passwordField.setBounds(123, 51, 98, 20);
    panel.add(passwordField);

    JButton button = new JButton("Autentificare");
    button.setBounds(80, 97, 112, 23);
    panel.add(button);
    button.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            String user = textField.getText();
            String pass = passwordField.getText();

            if(user.equals("admin") && pass.equals("admin")) {
                                 FereastraPrincipala(mntmLogout.setEnabled(true));
             FereastraPrincipala(mnAdministrator.setEnabled(true));
                JOptionPane.showMessageDialog(null,"Login esuat","Login esuat",JOptionPane.ERROR_MESSAGE);  
            } else if (user.equals("prez") && pass.equals("prez")) {
            /*  FereastraPrincipala(mntmLogout.setEnabled(true)):
                FereastraPrincipala(mnPresedinte.setEnabled(true)); */
                JOptionPane.showMessageDialog(null,"Login esuat","Login esuat",JOptionPane.ERROR_MESSAGE);
            } else { JOptionPane.showMessageDialog(null,"Login esuat","Login esuat",JOptionPane.ERROR_MESSAGE);}

    }

    });
}
}

0 个答案:

没有答案