我怎样才能在课堂上传递价值? JAVA

时间:2014-04-23 00:10:52

标签: java class paint draw

如何在类中传递值?

我尝试为数组的每个键值绘制条形图。

所以,我必须通过类Grid传递(int)len。 我怎样才能在这里找到解决方案? 在此先感谢:)

所以这是我的代码:

int len; 

public void HistogramGen() {

    JFrame framegraph = new JFrame("Terms Histogram");  
    framegraph.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
    framegraph.pack(); 
    framegraph.setVisible(true); 

    JPanel p= new JPanel( new GridLayout(finalnumber, 3) );

    for(int m=0; m<finalnumber; ++m) {
        p.add( new JLabel((String)keys[m]) );
        p.add( new JLabel( ((Integer)values[m]).toString() ) );
        String bar= "";
        for(int n=0; n<(Integer)values[m]; ++n) {
            bar= bar + "_";
        }
        len=bar.length();
        p.add( new Grid() ); 
    }

    JScrollPane pane= new JScrollPane( p );
    framegraph.add( pane );
}


public static class Grid extends JComponent {
    public void paint(Graphics g) {
        g.drawRect(0, 0, len, 10);
        g.setColor(Color.MAGENTA);
        g.fillRect(0, 0, len, 10);
    }
}

1 个答案:

答案 0 :(得分:0)

将构造函数添加到Grid类中,如下所示:

public static class Grid extends JComponent {
    private final int len;
    public Grid(final int len) {
        super();

        this.len = len;
    }
    public void paint(Graphics g) {
    ...
}

然后更改您的来电代码

p.add( new Grid(bar.length()) );