java - 在jpanel上画线

标签 java swing jpanel draw graphics2d

我想让它像 Draw a ruler (line with tick marks at 90 degree angle)只是不是在 jframe 上而是在 jpanel 上。

所以我尝试了:

JFrame f = new JFrame();
JPanel ff = new JPanel();

ff.add(new JComponent() {
...
});

f.add(ff);
...

但是我失败了。 :( 怎么做?

最佳答案

您可以简单地重写 ff 的 paintComponent(Graphics g){} 并在该方法中绘制您的内容。

JPanel ff = new JPanel(){ 
    public void paintComponent(Graphics g){
        // Draw what you want to appear on your JPanel here.
        // g.drawLine(blah blah blah), etc.
    }
};

在这种情况下你不需要这个......

ff.add(new JComponent() {
    ...
});

除非您想按照您提供的链接中的建议实现自定义组件,否则您不需要此通用组件。如果您确实想要创建这样的自定义组件,则不需要 ff,因为 JFrame 已经是可以容纳您的组件的容器。

关于java - 在jpanel上画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164392/

相关文章:

java - 当最小化或调整 JFrame 大小时,由线程调整大小的 JPanel 会获取其默认大小

Java容器

java - 似乎无法让 .remove 工作

JAVA .wait() 用于在运行方法之前等待 android studio

java - 有没有更好的方法来添加大量带有附加到数组的独特图像的 JPanel?

Java从不同的项目导入一个具有相同包名的类

java - 将鼠标悬停在 JSplitPane 分隔线上时更改光标

java - 如何使用未提及我自己的类的堆栈跟踪在 Java 中进行调试?

java - 通过反射创建时将对象转换为接口(interface)

java - JVM 的轻量级分布式单生产者多消费者消息服务