コンボボックスが表示されない理由を誰かが教えてくれますか? 私はコントローラーを持っています:
public class TestController extends JPanel {
TestView cgView;
public TestController()
{
setLayout(null);
cgView=new TestView();
add(cgView);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame fr = new JFrame("testt");
fr.setSize(1200,1000);
fr.setResizable(false);
TestController cgc=new TestController();
fr.setBackground(Color.white);
fr.setVisible(true);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.add(cgc);
}
});
}
}
そして、ビュー
public class TestView extends JPanel{
private static final long serialVersionUID = 1L;
public JComboBox<String> comboBox;
public TestView() {
comboBox= new JComboBox<>(new String[] {"option1", "option2" });
comboBox.setBounds(100,500, 100, 20);
add(comboBox);
}
}
TestController のsetLayout(null)のため、 comboBoxが表示されません。add(cgView.comboBox)を TestContoller()に追加すると、次のようになります。
public TestController()
{
setLayout(null);
cgView=new TestView();
add(cgView);
add(cgView.comboBox);
}
私がそれを見ることができるよりも。誰かが理由を教えてもらえますか?
したがって、私の解決策は、常に TestController にコンポーネントを追加するか、TestController を属性として TestView に渡すことです (したがって、TestView() では、このように追加します this.parentPanel.add(comboBox)。他の解決策はありますか?