如何解决在摆动计时器中使用 drawstring() 不会显示 drawstring()
swing timer 方法中的 drawstring() 不起作用,但是 system.out.println() 在相同的方法中起作用。我记得我可以在 Paint(Graphics g) 方法之外成功使用拉绳,但现在它不起作用。什么可能导致此错误?任何帮助,将不胜感激。谢谢。
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
public class Board extends JPanel {
Timer timer;
int count;
@Override
public void paint(Graphics g)
{
super.paintComponent(g);
g.fillRect(30,30,640,640);//makes a black square
for(int i=30;i<=510; i+=160)//adds white columns
{
for(int j=30; j<=510; j+=160)
{
g.clearRect(i,j,80,80);
}
}
for(int i=110; i<=590; i+=160)//adds black columns
{
for(int j=110; j<=590; j+=160)
{
g.clearRect(i,80);
}
}
g.setFont(new Font("Monospace",Font.BOLD,30));
g.setColor(Color.WHITE);
g.drawString("a",85,660);
g.drawString("c",245,660);
g.drawString("e",405,660);
g.drawString("g",565,660);
g.drawString("7",35,140);
g.drawString("5",300);
g.drawString("3",460);
g.drawString("1",620);
g.setColor(Color.BLACK);
g.drawString("b",165,660);
g.drawString("d",325,660);
g.drawString("f",485,660);
g.drawString("h",645,660);
g.drawString("8",60);
g.drawString("6",220);
g.drawString("4",380);
g.drawString("2",540);
startTimer(3,g);
}
public void showX(Graphics g)
{
g.setFont(new Font("wrongFont",200));
g.setColor(Color.RED);
g.drawString("X",540);
}
public void boardImage()
{
JFrame frame=new JFrame();
frame.setSize(600,600);
frame.getContentPane().add(new Board());
frame.setLocationRelativeto(null);
frame.setBackground(Color.LIGHT_GRAY);
frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
CoordinateGame game=new CoordinateGame();
frame.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
}
});
}
public void startTimer(int seconds,Graphics g)
{
ActionListener action=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(count==0)
{
timer.stop();
}
else
{
count--;
System.out.println("bruh");
g.drawString("bruh",300,300);
}
}
};
timer=new Timer(1000,action);
timer.setinitialDelay(0);
timer.start();
count=seconds;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。