私は問題があります。JFrame で Gridbaglayout を使用しました。コンポーネントの 1 つが JPanel です。
JPanel の背景としてグリッド線を描きたかったのです。たとえば、以下のプログラムでは、3 つの垂直線と 3 つの水平線を生成するはずですが、2 つの垂直線と 2 つの水平線しか表示されません。最後の行は表示されませんでした。
もう1つの問題は、JPanelのサイズが私が設定したものよりも大きかったようです。これは、JPanel の白い背景よりも短い線の長さからわかりました。
public class drawLayout extends JComponent
{
public Dimension getPreferredSize() {
return new Dimension(600, 600);
}
public int getY() {
return 0;
}
public int getX() {
return 0;
}
@Override public void paintComponent(Graphics g)
{
g.setPaint(Color.GRAY);
for (int i = 0; i <= getSize().width; i += 300)
{
g2.drawLine(i, 0, i, getSize().height);
}
for (int i = 0; i <= getSize().height; i += 300)
{
g2.drawLine(0,i, getSize().width, i);
}
}
}
編集:
http://www.freeimagehosting.net/image.php?1af16edc28.jpg
最初の問題は解決しました (グリッド線は JPanel に表示されました)。もう一つの問題は私を困惑させました。添付の画像でわかるように、グリッドの長さ (赤いボックスでマーク) を見ると、JPanel のサイズは 600 を超えているように見えます。グリッドラインの外側に余分な空白がなくてもグリッドラインの背景がきれいに見えるようにするにはどうすればよいですか?