EDIT2:それをテストしました。新しいJPanelには間違いなく問題があります。別のJFrameを開くときにJFrameがスタックする
SOLUTION: として、答えは私が明示的に私のJFrameの上に私のJPanelを設定するのを忘れていることも提案されています。変更:
setContentPane(contentPanetagesliste);
frame.setContentPane(contentPanetagesliste);
、それは私の作品に!
問題はJFrameの奇妙な動作です。
私のコードでは、私のMainFrameにradioButtonがあります。押すと、もう一方のフレームが開きます。
私の新しいフレームで私はJPanelを作った。 JPanelを追加する前に、もう一方のフレームがフリーズしなかったので、問題は新しいJPanelと何か関係があると思います。最後に
JPanel contentPanetagesliste;
contentPanetagesliste = new JPanel();
contentPanetagesliste.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPanetagesliste);
私はJPanelのにJScrollPaneのを追加します(つまり、私は1つをしなければならなかった理由だ)とJFrameのが見えるよう。
JScrollPane jsp = new JScrollPane(contentPanetagesliste);
frame.add(jsp);
frame.setVisible(true);
私は絶対に新しいJPanelのは、メインのJFrameまたはMainJFrameの上に横たわっているのJPanelに干渉する可能性がどのよう見当もつかない。あなたの何人かが助けてくれることを願っています。
編集:一部にはっきりしていなかったので、つまらないとは反応が無く、移動すると白い灰色になります。
画像に:右上のラジオボタンを押すと、新しいウィンドウが開き、完全に機能していますが、古いウィンドウが止まっています。
追加情報については、私は説明と私のアクションリスナーからの完全なコードを投稿します。
RadioBTNtagesliste.addActionListener (new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if(RadioBTNtagesliste.isSelected() == true){
String Eintrag = HttpClass.httpRequestEintrag(usernamevar,EintragStringPK,"eintragTABLE");
JSONObject jsonObjectEintrag = new JSONObject(Eintrag);
int ProjektJSONlength = jsonObjectEintrag.length() - 1;
frame.setSize(590, 450);
JPanel contentPanetagesliste;
contentPanetagesliste = new JPanel();
contentPanetagesliste.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPanetagesliste);
double[] temp = new double[ProjektJSONlength+2];
temp[0] = 10;
temp[1] = 30;
for(int i = 0; i < ProjektJSONlength; i++){
temp[i+2] = 25;
}
double size[][] = {{2, 90, 90, 90, 90, 90,90, 2}, // Columns
temp}; // Rows
contentPanetagesliste.setLayout(new TableLayout(size));
String label[] = {"Eintrag Nr.", "Projekt", "Aktivität", "Dauer", "Beschreibung", "Symbol"};
JButton button[] = new JButton[label.length];
JTextField textfield[] = new JTextField[label.length];
for (int i = 0; i < label.length; i++) {
button[i] = new JButton(label[i]);
}
contentPanetagesliste.add(button[0], "1, 1");
contentPanetagesliste.add(button[1], "2, 1");
contentPanetagesliste.add(button[2], "3, 1");
contentPanetagesliste.add(button[3], "4, 1");
contentPanetagesliste.add(button[4], "5, 1");
contentPanetagesliste.add(button[5], "6, 1");
EintragStringPK = "Neu";
for (int key=0; key<=ProjektJSONlength;key++) {
JSONObject jsonObjectProjekteObjekt0 = jsonObjectEintrag.getJSONObject(String.valueOf(key));
String Eintraege = jsonObjectProjekteObjekt0.toString();
String EintragStringDauer = jsonObjectProjekteObjekt0.getString("dauer"); // String auslesen!!!
String EintragStringBEschreibung = jsonObjectProjekteObjekt0.getString("beschreibung"); // String auslesen!!!
String EintragStringProjektname = jsonObjectProjekteObjekt0.getString("projektname"); // String auslesen!!!
String EintragStringAktivitaet = jsonObjectProjekteObjekt0.getString("kategorie"); // String auslesen!!!
EintragStringPK = jsonObjectProjekteObjekt0.getString("pk_ei_id"); // String auslesen!!!
System.out.println("test" + key);
System.out.println(ProjektJSONlength);
String labelCONTENT[] = {EintragStringPK, EintragStringProjektname, EintragStringAktivitaet, EintragStringDauer, EintragStringBEschreibung, "Symbol"};
for (int i = 0; i < labelCONTENT.length; i++) {
textfield[i] = new JTextField(labelCONTENT[i]);
}
int keypone = key+2;
String keyString = Integer.toString(keypone);
contentPanetagesliste.add(textfield[0], "1, "+keyString);
contentPanetagesliste.add(textfield[1], "2, "+keyString);
contentPanetagesliste.add(textfield[2], "3, "+keyString);
contentPanetagesliste.add(textfield[3], "4, "+keyString);
contentPanetagesliste.add(textfield[4], "5, "+keyString);
contentPanetagesliste.add(textfield[5], "6, "+keyString);
}
JScrollPane jsp = new JScrollPane(contentPanetagesliste);
frame.add(jsp);
frame.setVisible(true);
System.out.println("ende");
}else{
frame.setVisible(false);
System.out.println("ende2");
}
System.out.println("ende3");
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("ende4");
}
});
説明:
私はJFrameの、その後のJPanelを作成します。
SQL DBからのデータを使用して生成されたテーブルを作成することを目的とするため、テーブルに必要な配列と残りの部分を作成します。
また、データを取り出してテーブルフィールドに入れるためのHTTPrequestとループがあります。 まだループしていると、塗りつぶしされたテーブルのフィールドがコンテンツペインに追加され、Jpanel getは彼のJScrollPaneに表示され、フレームは可視に設定されます。
は、私は本当に誰かが私を助けることを願って、あなたがより良い質問をするためのヒントを得た場合、私は開いて耳を持っています。
JTableを作成してJTableをスクロールペインに追加し、スクロールペインをJPanelに、jpanelをJFrameに追加することをお勧めします。 – XtremeBaumer
「スタック」とは、ウィンドウを移動できないことを意味しますか?またはウィンドウが応答しなくなるのですか?ただ、明確 – DCON
のために私はそうでしたが、私はエラーを取得:私はそれが応答しなく – MansNotHot