繁体   English   中英

为什么JFrame运行或执行2次?

[英]Why JFrame running or executes 2 times?

我在其他JFrame上有以下代码:

test2 diagram = new test2(headers,inputSize);
diagram.setVisible(true);

这段代码就是我用来称呼此JFrame的代码,它具有以下代码:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Line2D;
import java.util.ArrayList;

public class test2 extends javax.swing.JFrame {

    static ArrayList<String> headers = new ArrayList<String>();
    static int inputSize;

    public test2 (ArrayList<String> headers, int inputSize)
    {
        initComponents();
        this.headers = headers;
        this.inputSize = inputSize;
    }
    public test2() {
        initComponents();
    }

    public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setPaint(Color.black);
        int x = 50;
        int y = 60;
        int st1 = 48;

        for(int a=0;a<inputSize;a++)
        {
            System.out.println("a"+a);
            g2.drawString(headers.get(a), st1, 55);
            g2.draw(new Line2D.Double(x, y, x, 450));
            x = x+30;
            st1 = st1+30;
        }
        for(int ctr=0;ctr<2;ctr++)
        {
            System.out.println(ctr);
        }

我已经将paint()更改为paintComponents()。 问题在于它不执行或不查看循环的输出,这意味着它不进入循环。 我使用Graphics2D还有创建线的其他方法吗?

首先,重写的正确方法是paintComponent(...)而不是paint(...)

在此处获取更多信息: Java applet中的paint()被无故两次调用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM