簡體   English   中英

drawLine()方法不繪制任何內容

[英]drawLine() method not drawing anything

所以我在一個類的內部包含了這個類,該類是JPanel的實現。

    private static class Line extends JComponent {

    private static final long serialVersionUID = 1L;

    @Override
    public void paintComponent(Graphics g) {
        System.out.println("Pozvan paintComponent()");
        g.setColor(Color.YELLOW);
        g.drawLine(20, 20, 100, 20);
        super.paintComponent(g);
    } 
    }

這是創建Line的單個實例的代碼段:

        Line line = new Line();
        line.setOpaque(true);
        add(line);

我真的不知道我在做什么錯。 當我繪制一個矩形時,一切都很好地繪制了。

當我將高度設置為較大的數字時,它會起作用。

Swing組件的默認大小為(0,0)。 由於大小為0,因此無需繪畫。

g.drawLine(20, 20, 100, 20);

使用以上信息,這意味着您的組件需要大小為(120,40)。 也就是說,寬度= 20 + 100,高度= 20 + 20,以便對組件進行噴塗。

I added line.setBounds(20, 20, 80, 50); 

由於將寬度設置為80,而不是120,因此僅會繪制部分線條。

閱讀Swing教程上有關自定義繪畫的部分,以獲取更多信息和示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM