gpt4 book ai didi

java - 从 Eclipse 运行应用程序时未调用 repaint()?

转载 作者:行者123 更新时间:2023-11-30 07:36:30 25 4
gpt4 key购买 nike

当我使用 Eclipse 和 Run->cmd 运行程序时,我从来没有将“paint”写入我的命令行窗口。如果我在另一个程序中从 paintComponent 运行 System.out.print() ,它工作正常。谁能帮忙?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class GUI extends JPanel implements KeyListener, ActionListener
{
private static final long serialVersionUID = 1L;
JFrame frmMain = new JFrame("Kodning");
JTextField text = new JTextField();
JPanel pan = new JPanel();
static char bokstav;
static int x=10, y=80;
boolean convert = false;
String s;
Timer t = new Timer(10, this);
public static void main(String[] args)
{

@SuppressWarnings("unused")
GUI g = new GUI();

}

public GUI()
{
frmMain.setSize(600, 120);
frmMain.setLayout(new GridLayout(2, 1));
frmMain.addWindowListener(hornStang());
frmMain.add(text);
frmMain.add(pan);
frmMain.setFocusable(true);
frmMain.setVisible(true);
frmMain.addKeyListener(this);
text.addKeyListener(this);
pan.addKeyListener(this);
t.start();
}
private static WindowAdapter hornStang()
{
return new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()== KeyEvent.VK_ENTER)
{
System.out.println("dechifrera");
repaint();
deshiffrera(text.getText());
}
}
public void keyReleased(KeyEvent arg0){}
public void keyTyped(KeyEvent arg0){}
public void deshiffrera(String s)
{
s = this.s;
repaint();
}
@override
public void paintComponent(Graphics g)
{
System.out.println("paint");
for(int i=0;i<s.length();i++)
{
bokstav = s.charAt(i);
switch (bokstav)
{
case 'a':nere(g); hoger(g); prick(g, 0); break;
//en massa case
default:break;
}
x=x+12;
}
}
@Override
public void actionPerformed(ActionEvent e)
{
repaint();
}
}

最佳答案

必须将组件添加到可见窗口/框架/组件才能调用它的 paintComponent
GUI 仅作为 KeyListener 添加,但既没有添加到 JFrame,也没有添加到上面代码中的任何其他可见组件。没有理由调用 paintComponent,因为组件根本没有显示。

关于java - 从 Eclipse 运行应用程序时未调用 repaint()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com