2

我想让它像在 jframe 上而是在 jpanel 上绘制一个尺子(带有 90 度角刻度线的线) 。

所以我尝试了:

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

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

f.add(ff);
...

但我失败了。:( 如何?

4

1 回答 1

4

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

IE

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 已经是可以容纳您的组件的容器。

于 2013-01-04T20:29:22.420 回答