初めての投稿なので、間違っていたらすみません。
私の問題は:
サイズなどの値が定義された JPanel にコンポーネントを追加しようとしていますが、それらをパネルに追加すると、必要なサイズと場所がまったくありません。例えば:
public class Console extends JFrame {
private JPanel mainPanel = new JPanel();
private JTextArea textField = new JTextArea();
private JTextArea textField2 = new JTextArea();
public Console() {
this.setSize(500,300);
this.mainPanel.setSize(this.getWidth(),this.getHeight());
this.textField.setEditable(false);
this.textField.setSize(this.mainPanel.getWidth(), 100);
this.textField.setPreferredSize(new Dimension(this.mainPanel.getWidth(),this.mainPanel.getHeight()));
this.textField.setLocation(0, 0);
this.textField.setText("some text");
this.textField.setVisible(true);
this.textField2.setSize(this.mainPanel.getWidth(),200);
this.textField2.setPreferredSize(new Dimension(this.getWidth(),this.getHeight()));
this.textField2.setLocation(0,this.mainPanel.getHeight()-this.textField.getHeight());
this.textField2.setText("blabla");
this.textField2.setVisible(true);
this.mainPanel.add(textField);
this.mainPanel.add(textField2);
this.mainPanel.setVisible(true);
this.add(this.mainPanel);
// I know you should not call setVisible() in the Constructor, just for making Code more simple here.
this.setVisible(true);
}
}
アプリケーションを起動すると、両方の JTextArea が非常に小さく、(上記の設定とは異なり) 中間のどこかにありますが、mainPanel は正しいです。動作しません。私が聞いた限り、これを行うには LayoutManager を使用する方が良いことはわかっていますが、正直なところ、正しく使用する方法がわかりません。Oracle Docで確認しましたが、誰かがこれに対するクリーンなソリューションを投稿していただければ幸いです。よろしくお願いします。