【问题标题】:Java Swing - Scroll Pane With Custom GraphicsJava Swing - 带有自定义图形的滚动窗格
【发布时间】:2013-02-07 19:07:26
【问题描述】:

我目前有下面的代码。

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

它会抛出错误。

谢谢

【问题讨论】:

  • 如果您绘制的图形尺寸超过JInternalFrame尺寸,您是否也想提供自动滚动选项?

标签: java swing graphics awt


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多