gpt4 book ai didi

java - java 上的 KeyAdapter、awt、swing 运行时错误。帮助发现错误

转载 作者:行者123 更新时间:2023-12-01 18:57:56 26 4
gpt4 key购买 nike

你好,我写了一些代码,虽然它可以工作,但它可以编译,甚至不会抛出异常或任何东西。它还创建了像打开的图标一样的图标,但我单击它,它没有执行任何操作,请需要帮助才能知道我做错了什么。这是该类的代码:

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

public class ventanatexto {
public JFrame ventana;
public String texto;
ventanatexto(){
JFrame.setDefaultLookAndFeelDecorated(true);
texto="";
ventana= new JFrame("teclado");
panel1 panel= new panel1();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.add(panel);
ventana.setVisible(true);
ventana.addKeyListener(new handler());

}

public class panel1 extends JPanel {

@Override
public void paint(Graphics g){
super.paint(g);
Dimension dim= getSize();
g.clearRect(0, 0, dim.width, dim.height);
g.drawString(texto, WIDTH, WIDTH);
};


}
class handler extends KeyAdapter{
@Override
public void keyPressed(KeyEvent k){
char tecla= k.getKeyChar();
switch(tecla){

case 127:texto="";
break;
case 8: if(texto.length()>0){texto=texto.substring(0, texto.length()-1);}
break;
default:
if (texto.length()<15){texto+=tecla;}

}
ventana.repaint();
}

}}

这是我的主要内容:

package practicagraficos8;

public class Practicagraficos8 {

public static void main(String[] args) {

ventanatexto prueba= new ventanatexto();
}
}

最佳答案

如图here ,“drawString() 期望坐标表示 Stringbaseline。”

FontMetrics fm = g.getFontMetrics();
g.drawString(texto, 0, fm.getAscent());

ventana

此外,

关于java - java 上的 KeyAdapter、awt、swing 运行时错误。帮助发现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333467/

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