У меня есть приложение, основанное на расширении проекта netbeans. Мне нужно показать новый выделенный Jframe при нажатии кнопки в TopComponet. Но когда я вызываю frame.setVisible (true), ничего не происходит. Я пробовал метод pack(), и это не помогает.JFrame не отображается в платформе netbeans
public void onClick(){
MyFrame frame = new MyFrame();
frame.pack();
frame.setVisible(true);
}
Я уже прочитал несколько человек, имеющих такую же проблему, но я не нашел никакого решения.
MyFrame Класс
public class MyFrame extends javax.swing.JFrame {
public MyFrame() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}
}
РЕДАКТИРОВАТЬ:
javax.swing.JFrame t = new javax.swing.JFrame("test");
t.pack();
t.setVisible(true);
//works
MyFrame t = new MyFrame();
t.pack();
t.setVisible(true);
//doesnt work
UserDetailWindowFrame является фрейму genereted от Netbeans.
как вы называете метод onClick()? – ZakiMak
button.addMouseListener (новый java.awt.event.MouseAdapter() {.... – SpeedEX505
нормально с этим, MyFrame - это имя вашего созданного gui класса для вашего приложения, если вы просто создаете новый экземпляр своего класса если вы закрываете приложение, то он выйдет из приложения. Почему вам нужен второй кадр? –