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 可以帮助我解决我的问题吗? 预先感谢
您正在实例化一个
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 );
}