私はJavaグラフィックに慣れていないので、3つのボタンの上に線を描きたい。私は線を描くいくつかの方法を見つけましたが、どれもボタンの上に描画しませんでした。ここでJavaグラフィックス(線を描く)
は私のGUIクラスは
public class GUI extends JFrame{
JButton[] buttons;
GUI()
{
setSize(255, 390);
setLocation(0, 0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
setVisible(true);
}
public void paint(Graphics g) {
super.paint(g);
//TODO add the line
}
void drawButtons()
{
buttons=new JButton[9];
int x=5,y=80;
for(int i=0;i<buttons.length;i++)
{
buttons[i]=new JButton("");
buttons[i].setSize(70,70);
buttons[i].setLocation(x,y);
buttons[i].setFont(new Font("Arial", Font.PLAIN, 45));
buttons[i].setBorder(BorderFactory.createBevelBorder(1,Color.black,Color.black));
y+=(i%3==2)?75:0;
x=(i%3==2)?5:x+75;
add(buttons[i]);
}
}
}
ですので、単純に、私はラインを作成し、パラメータとしてラインの位置を取得する関数を作成します。そして、私はそのラインをボタンの上にしたい。どうやってやるの?前もって感謝します。
FYI:Swingのすべての描画は、paintComponentで行う必要があります。グラフィックスのクリッピングは、一般的に、複数のコンポーネントにわたってカスタムペイントすることを困難にします。 JLayerのチェックアウトをおすすめします。 – ControlAltDel
@ControlAltDel paintComponentは私が持っているペイント関数ですか?とにかく、私はレイヤーを描画し、レイヤーをフレームに追加することができます。 – Ahmed
https://docs.oracle.com/javase/tutorial/uiswing/painting/ – ControlAltDel