-3

GUIウィンドウを備えたJavaの完全なプログラムがあり、最大化ボタンを押して全画面表示にしてJTextAreaを大きく表示するときに、このウィンドウを設定したいと思います。GUIで使用しました

public final class Test extends javax.swing.JFrame {

private JLabel label1;
private JLabel label2;
private JLabel label3;
private JLabel label4;
private JLabel label5;

private JTextField field1;
private JTextField field2;
private JTextField field3;

private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;

private JScrollPane scrollpane;

private JTextArea visualization;
private JComboBox list;



public Program_GUI()
{

    this.initialize_graphic_components();  
}


public void initialize_graphic_components()
{
  this.setTitle("Test Program");
  this.setSize(600,400);
  this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  this.setMinimumSize(new Dimension(600,400));
  this.setLayout(null);

  this.label2=new JLabel("Username:");
  this.label2.setBounds(20,50,120,20);
  this.add(label2);

  this.field2=new JTextField("");
  this.field2.setBounds(20,70,120,20);
  this.add(field2);

  this.visualization = new JTextArea(420,250);
  this.visualization.setEditable(false);
  this.scrollpane=new JScrollPane(this.visualization);
  this.scrollpane.setBounds(160, 50, 420, 250);
  this.add(scrollpane);


  ............here is the rest program.........

}

これが私のプログラムの始まりです。最大化ボタンを押して均一にするときに、ウィンドウをモニターのサイズに合わせて拡大します。
ありがとう。

4

3 に答える 3

2

あなたの問題はこの行にあります:

this.setLayout(null);

サイズの変更に対応してレイアウトを柔軟にする必要があります。レイアウトをまったく使用しない場合、これが機能することは期待できません。再び、私がほぼ1時間前に投稿した私のコメントによると:

それはすべて、使用しているレイアウトマネージャーによって異なりますが、これについてはまだ説明していません。たとえば、JTextAreaを保持するJScrollPaneがBorderLayout.CENTERの位置にあるコンテナを使用してBorderLayoutによって保持されている場合、コンテナが拡張するとすべての方向に拡張されます。

レイアウトマネージャーのチュートリアルを読んで使用してください。物語の終わり。

于 2012-12-29T19:23:51.913 に答える
1

すべてのコンテナ コンポーネントには、それに関連付けられたレイアウトがあります。レイアウトは、コンテナにコンポーネントを配置する方法です。

デフォルトでJFrameBorderLayout. BorderLayoutデフォルトでは、コンテナの可視領域を 5 つのセクションに分割します。これらの 5 つのセクションのうち、これらBorderLayout.CENTERのセクションにコンポーネントが追加されていない場合、他のセクションを最小の幅/高さに押し込み、スペースを占有する傾向があります。

BorderLayout.CENTERしたがって、要件のために、コンポーネントをセクションに配置する必要があります。

于 2012-12-29T19:14:56.753 に答える
0

このように必要なもの

 JFrame frame = new JFrame("Text") ;
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 Box box = Box.createHorizontalBox();
 JTextArea area = new JTextArea(10,10);
 box.add(area);
 frame.add(box);
于 2012-12-29T17:57:37.567 に答える