为什么 Java swing UI 不打印我的图表?

问题描述 投票:0回答:1
public class Main extends JFrame{
    public static void main(String[] args) {
        JFrame jp1 = new JFrame();
        jp1.setTitle("Diagram");
        Print m = new Print();
        jp1.setLayout(null);
        jp1.setSize(500,500);
        m.setBounds(0,0,500,500);
        jp1.add(m);
        jp1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jp1.setVisible(true);
    }
    static class Print extends JPanel{
        public void drawDiagram(Graphics g, double[] x, double[] y){
            g.setColor(Color.BLUE);
            int scale = 100;
            int lastX = 0, lastY = 0;
            for (int i = 0; i < x.length; i++) {
                g.drawLine(lastX*scale, lastY*scale,(int) x[i] * scale,(int) y[i]* scale);
                lastX = (int) x[i];
                lastY = (int) y[i];
            }
        }
    }

}

我正在使用 java swing,我不明白为什么我的图没有打印。 我尝试过使用 Main 类的对象,但没有帮助。 ypu 可以帮助我解决我的问题吗? 预先感谢

java swing user-interface
1个回答
0
投票

您正在实例化一个

Print
at

Print m = new Print();

但你没有打电话

drawDiagram
。由于您的
Main extends JFrame
,您可以重写其
paint
方法,例如:

    @Override
    public void paint( Graphics g ) {
        super.paint( g );
        //Declare and initialize x and y before you call drawDiagram
        drawDiagram( g, x, y );
    }
© www.soinside.com 2019 - 2024. All rights reserved.