Aynı anda iki (veya daha fazla) JFrames görüntülemek istiyorum.
Bunlardan birini kapattığımda (varsayılan kapatma düğmesini kullanın), diğer çerçeveler yine de görünmelidir.Başka bir JFrame'i kapatmadan kapatın
Bunu nasıl yapabilirim?
Aynı anda iki (veya daha fazla) JFrames görüntülemek istiyorum.
Bunlardan birini kapattığımda (varsayılan kapatma düğmesini kullanın), diğer çerçeveler yine de görünmelidir.Başka bir JFrame'i kapatmadan kapatın
Bunu nasıl yapabilirim?
Bir JFrame
kapatıldığında uygulama sonlandırılacak istemiyor, documentation itibaren
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
yerine
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
kullanırsanız: (
DO_NOTHING_ON_CLOSE
WindowCons'ta tanımlanmış tants): Hiçbir şey yapmayın; Programın kayıtlı bir WindowListener nesnesinin windowClosing yönteminde işlem yapmasını gerektirir.HIDE_ON_CLOSE
(WindowConstant'ta tanımlı): Kayıtlı herhangi bir WindowListener nesnesini çağırdıktan sonra çerçeveyi otomatik olarak gizleyin.DISPOSE_ON_CLOSE
(WindowConstant'ta tanımlı): Kayıtlı herhangi bir WindowListener nesnesini çağırdıktan sonra çerçeveyi otomatik olarak gizleyin ve atın.EXIT_ON_CLOSE
(JFrame'de tanımlanmıştır): Sistem çıkış yöntemini kullanarak uygulamadan çıkın. Bunu yalnızca uygulamalarda kullanın. Tekrar aynı kareyi görüntülemek isterseniz sizin JFrame
üzerinde setVisible(false)
kullanabilirsiniz :
Bu soru anlaşılamadan, hala yararlı olabilir cevabım oldu.
Aksi takdirde remove all of the native screen resources numaralı telefona dispose()
numaralı telefonu arayın.
Bu size yardımcı oluyor mu?
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class TwoJFrames {
public static void main(String[] args) {
int nb = 4;
if (args != null && args.length > 0) {
nb = Integer.parseInt(args[0]);
}
final int frameCount = nb;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
for (int i = 0; i < frameCount; i++) {
JFrame frame = new JFrame("Frame number " + i);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p = new JPanel(new BorderLayout());
p.add(new JLabel("Click on the corner to close..."), BorderLayout.CENTER);
frame.setContentPane(p);
frame.setSize(200, 200);
frame.setLocation(100 + 20 * i, 100 + 20 * i);
frame.setVisible(true);
}
}
});
}
}
yararlıdır, teşekkürler! – Keating
Teşekkürler, ancak pencereyi sağ üst köşedeki kapat düğmesiyle kapatıyorum. Kesinlikle setVisible (false) kullanmaz ve iş parçacığını durdurmalıdır. – Keating
Sanırım bazı güveleri geçersiz kılmalıyım, hangisini güldüğümü bilmiyorum ama bunun kapanış güvesi olmadığına inanıyorum. – Keating
Neyi başarmaya çalıştığınızdan emin değilim, lütfen sorunuzu düzenleyebilir ve ne yapmaya çalıştığınız ve nelerin işe yaramadığı hakkında bilgi ekleyebilir misiniz? –