Java Swing JPanel。如何绘制形状?

标签 java swing jpanel

我已经实现了一个类DrawingPane extends JPanel来绘制一些形状。我为每种类型的形状创建了一个单独的方法,例如圆形对应:

public void paintCircles(Graphics g) {
           super.paint(g);

但是,我无法通过对类 DrawingPane 的引用从另一个类调用它。如何才能做到这一点?如果这种方式不可能,我如何调用单独的方法来绘制每种类型的形状,因为不同形状的代码要求不同?

此外,类JPanel 中的方法scrollRectToVisible 不适用于对象RoundRectangle2D.Double。如何才能让这些形状也可见呢?

最佳答案

您需要在 DrawingPane 中实现 paintComponent(Graphics g),并且可以使用 draw(Shape s) 绘制任何形状:

public void paintComponent(Graphics g) {
        super.paintComponent(g); 
        Graphics2D g2 = (Graphics2D)g;    
        g2.draw(yourShape);
}

关于Java Swing JPanel。如何绘制形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7846306/

相关文章:

java - 我如何获得在 Java 中有重复的所有组合(递归)?

Java动画方法

java - 线程 "AWT-EventQueue-0"java.lang.NumberFormatException : empty String OS Kernel Simulation 中的异常

java - 检测鼠标悬停在 JPanel 子级上

java - 安卓/Java : how to set background color of MaterialShapeDrawable with int Color?

java - Tomcat 共享 lib 文件夹

java - 使用方法在 Jpanel 内添加 JButton 时,如何保持最后添加的按钮在 View 中?

JAVA - 如何更改字符 'F'/'f' 的单个 keyPressed 之间的状态?

java - 动态编译代码时如何访问Java Web Start加载的类?

java - 根据新屏幕尺寸重新计算 X 和 Y 坐标