私はここでちょっと新しいです。私は自分のコードに何が間違っているかを把握していません。私は2つのJFramesを持っています、1つはメインフレームであり、もう1つはメインフレームで選択されたデータをクリックするたびに「ビューの詳細」フレームのようなものです。 これは私のメインクラスは次のようになります:jframeから新しく開いたjframeにデータをロード
public class MainClass{
private JFrame frame;
private JButton btnNewButton;
private String testData;
private DetailClass detail;
public JFrame getFrame() {
return frame;
}
public String getTest() {
return testData;
}
public void setTest(String test) {
this.testData = test;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
main window = new main();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public MainClass() {
initialize();
}
private void initialize() {
//some codes label, button, etc.
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
setTest("Data retrieved from main");
detail.getFrame().setVisible(true);
}
});
detail = new DetailClass();
detail.setMainClass(this);
}
}
そして、ここで私はメインから取得したデータを表示したい私のDetailClassです。 パブリッククラスDetailClass(){ プライベートMainClassメイン; プライベートJFrameフレーム。それだけです
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DetailClass window = new DetailClass();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public DetailClass() {
initialize();
}
public void initialize(){
//some codes for frame
//this is where I test if the detail class receives the data
System.out.println(main.getTest());
}
public void setMainClass(MainClass m){
this.main = m;
}
}
は、main.getTestは()()intializeで動作するようには思えませんが、私は、フレーム2のボタンをクリックしたときにマウスイベントでそれを入れてみました、それが正常に動作します。それは、フレームがすでに表示/アクティブ化/レンダリングされている場合にのみ動作するようですが、初期化では機能しません。フレーム2にデータをプリロードする必要があります。 :)
'「詳細を表示」frame'はJFrameの、**メイン**アプリケーションウィンドウではありませんが、むしろ使って、JDialog、またはアプリケーションの依存サブする必要があります窓。 –
こちらをご覧ください:[複数のJFramesの使用:良いか悪い練習ですか?](http://stackoverflow.com/q/9554636/522444)また、スイング以外のアプリケーションと同じように、あるクラスから別のクラスへ情報を渡すこともできます:コンストラクターとメソッドのパラメーター。 –
この 'other()'メソッドはどこで呼びますか? –