申し分なく、私はプログラミングに比較的慣れていないので、見逃しているのは単純なものかもしれませんが、このトピックに関連する他のスレッドは、他の人が質の高い回答を提供するための問題に関する十分な情報を提供していないので、それはショットです。
public BenchUI(JFrame j){
jf = j;
init();
add(mainPanel);
topPanelButtons();
selectedCustomer();
rentalOptions();
clientListBox();
}
この時点で、 clientListBox() メソッドを追加するまで、すべてが完全に機能することを指摘できます。(下)
public void clientListBox(){
clientList = new JComboBox(moo);
clientList.setPreferredSize(new Dimension(460,30));
gbc.gridx = 0;
gbc.gridy = 0;
leftSide.add(clientList,gbc);
}
コメントアウトして、GUI 全体を完全に動作させることができますが、JComboBox は必要ありません。
moo is String [] moo = {"Fish","Goat", "Monkey"}; テスト用のダミー文字列で、最初に初期化されます。
では、clientList に配置すると GUI が完全に消えてしまうのはなぜでしょうか?
他に何か必要な場合は、このスレッドを監視し、追加情報を提供できます。
補足として、「Raw タイプ」の警告が表示され続けていますが、指定しなくても機能します。JComboBox を指定しないと、問題が発生する可能性がありますか?
編集:
わかりました、このコードの問題が何であれ複製したと思います
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
public class main {
public static void main(String[] args){
JFrame jf = new JFrame();
jf.setExtendedState(JFrame.MAXIMIZED_BOTH);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setResizable(false);
BenchUI bu = new BenchUI(jf);
jf.add(bu);
}
}
public class BenchUI extends JPanel{
JPanel one;
JFrame jf;
JComboBox<String> clientList;
String[] moo = {"Goat", "Fish", "Donkey"};
public BenchUI(JFrame j){
jf = j;
one = new JPanel(new GridBagLayout());
one.setBackground(Color.blue);
one.setPreferredSize(new Dimension(300,300));
clientList = new JComboBox<String>(moo);
one.add(clientList);
add(one);
}
}
clientList のものをコメントアウトすると、ばかげた小さな青いパネルが表示されます。追加すると、青いパネルが失われ、コンボボックスも表示されません...これに賭けるのは、現時点では顔面の問題です >.<
編集:メインクラスを含める。
編集: JComboBox コンストラクターと実装者のコメント マークを削除