我希望我的 java 程序随着输入法参数的变化绘制字符串“hello”,而不会丢失之前绘制的内容。换句话说,框架必须一个接一个地绘制许多串“Hello”,直到程序被迫停止。目前它只显示一个单词“你好”,它的新 y 位置已更改。
我如何更改下面的程序以使用新的 y 位置绘制许多“你好”的单词?非常感谢您的帮助。
谢谢
代码
import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
public class test6 extends JPanel {
int x=100;
int y=30;
String text = null;
public static void main (String args[]){
JFrame frame = new JFrame("Test Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test6 gamePanel = new test6();
frame.add(gamePanel);
frame.setSize(400,400);
frame.setVisible(true);
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
input();
g.drawString("hello", x, y);
}
void input(){
try {
System.out.println("input your command?");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
text = in.readLine();
y=y+50;
} catch (IOException ex) {
Logger.getLogger(test6.class.getName()).log(Level.SEVERE, null, ex);
}
repaint();
}
}
最佳答案
遍历 List<Point>
在你执行 paintComponent()
,其中每个点都是 leading baseline一个字符串。从此example开始,以下迭代方案生成类似于下图的图像。
for (Bauble b : queue) {
g2d.setColor(b.c);
//g2d.fillOval(b.x, b.y, b.d, b.d);
g2d.drawString("Hello", b.x, b.y);
}
关于Java-如何在不丢失现有绘图的情况下在 JFrame 上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426469/