まず、この質問が以前に尋ねられた場合は申し訳ありませんが、どこでも答えが見つからないようですので、ここに行きます:パネルにキャンバスを追加してもキャンバスが表示されませんか?
キャンバス要素を追加する際に表示しようとしていますパネルの周りにタイトルのついた境界線があるパネル。ここに私のコードです。
public class TestClass extends JFrame{
private TestClass() {
GuiCanvas canvas = new GuiCanvas();
setTitle("TestClass");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(1300, 800);
Border menuBorder = BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.LIGHT_GRAY), "Overview");
JPanel controlpanel = new JPanel();
JPanel panelCanvas = new JPanel();
panelCanvas.setBorder(menuBorder);
panelCanvas.add(canvas);
controlpanel.setLayout(new GridLayout(3, 1));
controlpanel.add(panelCanvas);
add(controlpanel);
setLocationRelativeTo(null);
setVisible(true);
System.out.println(canvas.getBounds());
}
private class GuiCanvas extends Canvas {
GuiCanvas() {
setBackground(Color.LIGHT_GRAY);
}
@Override
public void paint(Graphics g) {
g.drawLine(20, 20, 20, 200);
}
}
public static void main(String[] args) {
new TestClass();
}
}
それは私がGuiCanvasクラスに描画規定される線を示すべきであるというタイトルの境界を持つ空のパネルに上記のコードをもたらします。私はここに何かを逃していますかキャンバス要素をパネルに追加することも可能ですか?事前に助けていただきありがとうございます。
混合を避けます重量と軽量のコンテナでは、互いにうまく遊びません。 'BufferStrategy'で遊んでいない限り、' Canvas'を使う必要はありません。 – MadProgrammer