これは私の最初の投稿です。私が何か間違っている場合は、私に許してください。JPanelに追加したときにJava Swing Componentsのサイズが正しくない
私の問題がある:サイズ等のために、私は定義された値とのJPanelにコンポーネントを追加しようとしています
しかし、私は、パネルに追加するとき、彼らは絶対に彼らが持つべきサイズと位置を持っていません。たとえば :私は、アプリケーションを起動すると、両方のJTextAreaの年代は本当に小さくてどこか途中で(ない上記のように設定)されている
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);
}
}
mainPanelがcorrect.IはのsetSize()とsetPreferredSizeを呼び出ししようとしながら、()コード内のさまざまな場所では動作しませんでしたが、動作しませんでした。私が聞いた限りこれを行うためにLayoutManagerを使用する方が良いことは分かっていますが、正直言って、正しく使用する方法はありません。 Oracle Doc'sでチェックしましたが、誰かがこのためにクリーンなソリューションを投稿できると感謝しています。
あなたは正しい「レイアウト」を使用する必要があります –
残念ですが、残念ですが、setLayout()を意味しますか?もしそうなら、私は、例えば、GridLayoutを作成しなければならないと思います。しかし、私はこのレイアウトにコンポーネントを追加する必要がありますか、それはどのように機能しますか? –
回答として私のガイドラインを参照してください。 –