我目前有以下代码。
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);
它会抛出错误。
由于
答案 0 :(得分:2)
您不在滚动窗格中执行图形。另外,不要使用getGraphics()方法进行自定义绘制。
通过覆盖JPanel或JComponent的paintComponent()方法来完成自定义绘制。然后,如果需要,可以将面板添加到滚动窗格并将滚动窗格添加到框架中。不要忘记设置面板的首选大小,以便滚动起作用。
首先阅读Custom Painting上的Swing教程。