Java Swing - 带自定义图形的Jscrollpane

时间:2013-02-07 19:07:27

标签: java swing graphics awt

我目前有以下代码。

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);

它会抛出错误。

由于

1 个答案:

答案 0 :(得分:2)

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

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

首先阅读Custom Painting上的Swing教程。