JAVA открытие другого jframe при нажатии на jbutton

229
28 сентября 2017, 12:50

Хочу, чтобы при нажатии на jbutton "Test epta" открывалось 2-ое окно. Реализовал вот так, но так не работает )) Подскажите, что не так делаю

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

Есть 1-ое , основное окно:

public gui() {
    initialize();
}
private void initialize() {
    frm = new JFrame();
    frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frm.setIconImage(Toolkit.getDefaultToolkit().getImage(gui.class.getResource("/PFP/drop_logo.png")));
    frm.setResizable(false);
    frm.setTitle("Protector of Fair Play");
    frm.getContentPane().setBackground(Color.WHITE);
    frm.setBounds(100, 100, 350, 169);
    ActionListener actionListener = new mysql();
    frm.getContentPane().setLayout(null);
    JButton TestEpta = new JButton("TEST EPTA");
    TestEpta.setBounds(255, 48, 89, 23);
    TestEpta.addActionListener(new Second());
    frmAnticheat.getContentPane().add(TestEpta);

Есть обработка

 class Second implements ActionListener 
 {
 public void actionPerformed(ActionEvent e) 
  {   
      Servers.frame.setVisible(true);  
  }
 }

Есть 2-ое окно

 public class Servers extends JFrame{
JFrame frame;
public static void main(String[] args) throws URISyntaxException {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Servers window = new Servers();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
public Servers() throws URISyntaxException {
    initialize();
}
private void initialize() throws URISyntaxException {
     final URI uri = new URI("");
        class OpenUrlAction implements ActionListener {
          @Override public void actionPerformed(ActionEvent e) {
            open(uri);
          }
        }
    frame = new JFrame();
    frame.setResizable(false);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setTitle("Test Servers");
    frame.setBounds(100, 100, 200, 169);
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(gui.class.getResource("logo.png")));
    frame.getContentPane().setLayout(null);
    JLabel lblNewLabel_1 = new JLabel("\r\n");
    lblNewLabel_1.setBounds(0, 0, 196, 144);
    lblNewLabel_1.setIcon(new ImageIcon(gui.class.getResource("/2222.png")));
    frame.getContentPane().add(lblNewLabel_1);
}
 private static void open(URI uri) {
        if (Desktop.isDesktopSupported()) {
          try {
            Desktop.getDesktop().browse(uri);
          } catch (IOException e) {  }
        } else {  }
      }
 }
Answer 1

Servers.frame.setVisible(true); - ты пытаешься обратиться к классу как к статическому, который на деле таковым не является.

class Second implements ActionListener 
 {
 public void actionPerformed(ActionEvent e) 
  {   
      Servers newFrame = new Servers ();
      newFrame.setVisible(true);  
  }
 }
READ ALSO
Закрытие JFrame

Закрытие JFrame

Есть JFrame, у него вроде как есть метод

225
Помогите с onActivityResult

Помогите с onActivityResult

Есть авторизация в приложении с помощью VK SDK, щас надо сделать авторизацию с помощью GoogleSignInApi

239
Запись массива в текстовый файл

Запись массива в текстовый файл

У меня на выходе программы двумерный массив 100 х 100 на Java, величина значений достаточно большаяНужно записать этот массив в текстовый файл

443
Не могу получить доступ к активити (Java android)

Не могу получить доступ к активити (Java android)

Я создал три активитиКаждый добавил в манифест

233