Melalui Nilai Antara JFrames
Cabaran
Apabila mengklik pada baris dalam JTable dalam JFrame kedua, objektifnya ialah untuk memastikan nilai yang dipilih mengisi medan teks dalam JFrame asal.
Analisis
Walaupun seni bina program mungkin mencadangkan menggunakan JDialog dan bukannya JFrame, kedua-duanya bergantung pada prinsip yang sama untuk menghantar rujukan objek GUI seperti dalam kod Java standard.
Dalam kes tetingkap JFrame membuka JFrame lain, bingkai pertama biasanya memegang rujukan kepada yang kedua, membenarkannya untuk memanggil kaedahnya. Masa untuk panggilan ini bergantung pada sama ada bingkai kedua ialah dialog ragam atau tidak.
Penyelesaian
Untuk dialog ragam, masa yang sesuai untuk mendapatkan keadaan adalah serta-merta selepas dialog itu kembali. Untuk dialog bukan modal, pendengar boleh digunakan untuk memantau bila maklumat harus diekstrak.
Kod Contoh
Untuk menggambarkan konsep ini dengan contoh mudah, pertimbangkan kod berikut:
<code class="java">// MyFramePanel holds a reference to MyDialogPanel and its JDialog class MyFramePanel extends JPanel { // ... // When the "Open Dialog" button is clicked, the dialog is opened private void openTableAction() { if (dialog == null) { dialog = new JDialog(win, "My Dialog", ModalityType.APPLICATION_MODAL); dialog.getContentPane().add(dialogPanel); dialog.pack(); dialog.setLocationRelativeTo(null); } dialog.setVisible(true); // Modal dialog takes over // After the dialog is disposed, retrieve the text from its JTextField field.setText(dialogPanel.getFieldText()); } }</code>
Contoh ini menunjukkan cara rujukan kepada panel dialog membolehkan data medan teks daripada dialog dipindahkan ke medan teks dalam bingkai utama. Teknik yang sama boleh digunakan untuk mendapatkan semula data daripada JTable.
Atas ialah kandungan terperinci Bagaimanakah anda menghantar nilai dari JTable dalam JFrame kedua ke medan teks dalam JFrame asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!