0

JfreeChart をいくつかのラベルと一緒に gridBagLayout に配置しようとしています。グラフを右側に配置し、フレームのすべてのスペースを水平方向と垂直方向に使用し、フレームの幅の 90% を占めるようにしたいと考えています。ラベルは、左側の同じサイズのセルに配置する必要があります。それぞれが幅の 10% と高さの 33% を占めるグラフ。これまでのところ、コードは次のようになります。

 val chartPanel = new ChartPanel(chart, true, true, true, true, true)

  //layout
  setLayout(new GridBagLayout())
  val c = new GridBagConstraints()

  //natural height, maximum width
  c.fill = GridBagConstraints.BOTH
  c.gridx = 1
  c.gridy = 0
  c.weightx = 0.9
  add(chartPanel, c)

  val label = new JLabel("Count: ")

  val c2 = new GridBagConstraints()
  c2.fill = GridBagConstraints.VERTICAL
  c2.gridx = 0
  c2.gridy = 0
  c2.weightx = 0.1
  add(label, c2)

  val label2 = new JLabel("Count2: ")
  val c3 = new GridBagConstraints()
  c3.fill = GridBagConstraints.VERTICAL
  c3.gridx = 0
  c3.gridy = 1
  c3.weightx = 0.1
  add(label2, c3)


  val label3 = new JLabel("Count3: ")
  val c4 = new GridBagConstraints()
  c4.fill = GridBagConstraints.VERTICAL
  c4.gridx = 0
  c4.gridy = 2
  c4.weightx = 0.1
  add(label3, c4)

そして、私が得ている画面はこれです:

ここに画像の説明を入力

さらに、奇妙なことに、画面のサイズを変更すると、次のように表示されます。

ここに画像の説明を入力

チャート全体が大幅に縮小されたかのように...これを解決する方法はありますか? 事前にどうもありがとう

4

4 に答える 4

2

これを使用できますframe.setResizable(false);

于 2013-05-09T11:02:11.377 に答える
1

ラベルに「必要な幅」を与え、チャートに「残り」を与えてみませんか?

これは、のGridLayoutラベルの 1 つの列を使用して行うことができます。にチャートを入れます。LINE_STARTBorderLayoutCENTER

于 2013-05-09T11:01:51.917 に答える
1

これは通常、使用可能なスペースがコンポーネントの推奨サイズよりも小さいために発生します (これは でよく発生しますJTextField) 。

最小サイズを返すこともできます。

于 2013-05-09T11:15:42.117 に答える