btnAddNewDebt
düğmesine IOUApplication.java
numaralı tuşa basıldığında açmaya çalışıyorum. Düğmeye basıldıktan sonra IOUApplication.java
penceresi kapanmalı ve DebtForm.java
penceresi açılmalıdır.JButton tıklandığında yeni bir JFrame açılıyor
DebtForm.java
'u btnAddNewDebt
düğmesine basıldığında açmayı başardım, ancak IOUApplication.java
penceresini kapatamıyorum.
aşağıdaki kullanarak denedim:
public void close(){
WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
Yine de kod nereye yerleştirileceğini emin değilim ya da başka bir alternatif yöntemler varsa pencereyi kapatmak için.
İşte bağlam için IOUApplication.java
bir parçacık İşte: JFrame kapatmak için
public void initialize() {
frame = new JFrame();
frame.getContentPane().setBackground(Color.DARK_GRAY);
frame.setBounds(100, 100, 450, 132);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnAddNewDebt = new JButton("Add new debt");
btnAddNewDebt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DebtForm frame = new DebtForm();
frame.setVisible(true);
}
});
btnAddNewDebt.setBounds(81, 18, 117, 29);
frame.getContentPane().add(btnAddNewDebt);
JButton btnPersonalDebt = new JButton("Personal Debt");
btnPersonalDebt.setBounds(266, 18, 117, 29);
frame.getContentPane().add(btnPersonalDebt);
JLabel lblWrittenAndCoded = new JLabel("Written and coded by Samuel Kahessay");
lblWrittenAndCoded.setForeground(Color.WHITE);
lblWrittenAndCoded.setBounds(108, 88, 252, 16);
frame.getContentPane().add(lblWrittenAndCoded);
}
1) Bkz. [Birden Fazla JFram Kullanılması, İyi/Kötü Uygulama?] (Http://stackoverflow.com/q/9554636/418556) 2) Java GUI'lerinin farklı işletim sistemi, ekran boyutu, ekran üzerinde çalışması gerekir. farklı lokallerde farklı PLAF kullanarak çözünürlük vb. Bu nedenle, piksel mükemmel düzenine elverişli değildir. Bunun yerine düzen yöneticileri veya [bunların kombinasyonları] (http://stackoverflow.com/a/5630271/418556), [beyaz alan] için düzen dolguları ve kenarlıkları ile birlikte kullanın (http://stackoverflow.com/a/17874718/ 418.556). 3) Daha iyi yardım için, daha önce bir [MCVE] veya [Kısa, Kendini İçeren, Doğru Örnek] (http://www.sscce.org/) gönderin. –
['Window # dispose'] ile ilgili sorun nedir? (Https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#dispose()) veya [' Window # setVisible'] (https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#setVisible(boolean))? Belki de [Çoklu JFramların Kullanımı, İyi/Kötü Uygulama?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) ve alternatif [CardLayout Nasıl Kullanılır] 'a bakabilirsiniz (http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html) – MadProgrammer
'null' düzeni kullanmaktan kaçının, pixel mükemmel düzenler modern bir yanılsamadır UI tasarımı. Bileşenlerin bireysel büyüklüğünü etkileyen çok fazla faktör vardır, bunların hiçbiri kontrol edemezsiniz. Swing, düzen yöneticileri ile birlikte çalışmak için tasarlandı, bunları atmak, sorunların ve sorunların hiçbir şekilde sonlanmasına neden olacak ve – MadProgrammer