![](/img/trans.png)
[英]JFrame executes infinite times while using componentResized() of ComponentListener() in JFrame
[英]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.