I am using Java8 and I am trying to move from one frame to another using the code.
Problems: The first JPanel doesn't close Second JPanel gives error when I try to close the window
Error msg:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at ex2.Main2$2.actionPerformed(Main2.java:60) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6539) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6304) at java.awt.Container.processEvent(Container.java:2239) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) at java.awt.Container.dispatchEventImpl(Container.java:2283) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Help Please.
first frame:
public class ex2 {
private JFrame frmLogin;
private JTextField textField;
private JPasswordField passwordField;
//cuted the methods to start the frame
private void initialize() {
frmLogin = new JFrame();
frmLogin.getContentPane().setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.setTitle("Login");
frmLogin.setBounds(100, 100, 400, 300);
frmLogin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmLogin.getContentPane().setLayout(null);
JLabel lblUserName = new JLabel("Username");
lblUserName.setBounds(130, 40, 150, 15);
lblUserName.setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.getContentPane().add(lblUserName);
JLabel lblPassword = new JLabel("Password");
lblPassword.setBounds(130, 100, 150, 15);
lblPassword.setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.getContentPane().add(lblPassword);
textField = new JTextField();
textField.setBounds(130, 70, 150, 19);
textField.setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.getContentPane().add(textField);
textField.setColumns(10);
passwordField = new JPasswordField();
passwordField.setBounds(130, 130, 150, 19);
passwordField.setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.getContentPane().add(passwordField);
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String user = textField.getText();
String pass = String.copyValueOf(passwordField.getPassword());
if (user.equals("Rod") && pass.equals("123")) {
Main2 segundo = new Main2();
segundo.setVisible(true);
ex2.setVisible(false);
}
}
});
btnLogin.setBounds(130, 190, 150, 25);
btnLogin.setFont(new Font("Dialog", Font.BOLD, 18));
frmLogin.getContentPane().add(btnLogin);
}
Second frame
public class Main2 extends JFrame {
private JPanel contentPane;
private static Main2 frame2;
public Main2() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 400, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblEntramos = new JLabel("Entramos");
lblEntramos.setFont(new Font("Dialog", Font.BOLD, 22));
lblEntramos.setBounds(150, 100, 200, 15);
contentPane.add(lblEntramos);
JButton btnSair = new JButton("Sair");
btnSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
frame2.setVisible(false);
}
});
btnSair.setBounds(125, 175, 150, 25);
contentPane.add(btnSair);
}
}
JPanel
? – Abra