我使用this example to draw polygons作为基础来制作我自己的多边形抽屉,但保留了最重要的部分:
public class Main extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
// polygon maker
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("DrawPoly");
frame.setSize(1000, 1000);
frame.setLocationRelativeTo(null);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new Main());
frame.show();
}
}我发现,如果多边形的坐标值为负值,它们就会从屏幕上消失,我无法完整地看到它们。为此,我想像一下在main中创建的JFrame,或者内容窗格的某种滚动或缩放。如何使用链接的代码作为基础来实现一个简单的滚动?
发布于 2019-10-31 05:01:35
我发现,如果多边形的坐标值为负值,它们就会从屏幕上消失
您不能使用具有负值的JScrollPane。
相反,您需要:
创建要绘制的所有多边形,并通过ArrayList.
translate(...)方法,以将面板上的所有多边形移动到它们都将被ArrayList迭代并绘制每个多边形。请注意。理想情况下,您应该创建多边形,然后在paintComponent()方法外部添加然后执行ArrayList。然后进行翻译。因此,现在paintComponent()方法只需要迭代ArrayList并绘制它们,而不需要在每次组件需要重新绘制自己时进行创建/转换。
https://stackoverflow.com/questions/58632842
复制相似问题