1

我目前有下面的代码。

public class cRunningView extends JInternalFrame {

    static final int xOffset = 30, yOffset = 30;
  public cRunningView() {
    // Get name;
    super("RUNNING", true, // resizable
            false, // closable
            true, // maximizable
            true);// iconifiable

    System.out.println("##" + "p.getName()");
    // ...Then set the window size or call pack...
    setSize(500, 200);

    // Set the window's location.
    setLocation(xOffset * 0, yOffset * 0);


    JScrollPane scrollPane = new JScrollPane();

}

}

我的目标是在屏幕的一半上有一个带有多个按钮和一个框/矩形的 JInternalFrame。

在这个框中,我希望能够绘制图形,例如从 x,y 到 x,y 绘制椭圆。

我试过看例子,但让我自己比开始时更困惑。我所有的代码都在工作,例如显示主 GUI 窗口和我的内部框架打开,但我似乎无法找到一个好的 tutuirol/起点来在 JScrollPane 中做图形。

请注意我不必使用 JScrollPane 我只是认为我会是一个好主意,因为它会给图形一个边框。

在任何人抱怨这个问题之前,我认为它是有效的并且我不希望将代码放在盘子上给我,我宁愿知道并理解我在做什么,这样我就可以提高我的知识并能够帮助他人!

我是否必须制作另一个课程并做 JScrollPane myPane = JScrollPane(graphicsClass)

然后用paint()做所有事情,或者有没有办法创建一个图形并在没有另一个类的情况下做到这一点?

如果我做 :

JScrollPane scrollPane = new JScrollPane();
    Graphics temp = scrollPane.getGraphics();
    temp.setColor(new Color(1, 22, 33));
    temp.fillOval(60, 0, 120, 60);
    scrollPane.paint(temp);

它抛出错误。

谢谢

4

1 回答 1

3

您不在滚动窗格中执行图形。另外,不要使用 getGraphics() 方法进行自定义绘画。

自定义绘制是通过覆盖 JPanel 或 JComponent 的 paintComponent() 方法来完成的。然后,如果需要,您可以将面板添加到滚动窗格并将滚动窗格添加到框架中。不要忘记设置面板的首选大小,以便滚动工作。

从阅读自定义绘画的 Swing 教程开始。

于 2013-02-07T19:24:31.493 回答