我希望我的java程序在輸入方法參數發生變化時繪製字符串「hello」,而不會丟失之前的圖形。換句話說,框架必須依次繪製很多「Hello」字符串,直到程序被迫停止。目前它只顯示「hello」的一個詞,它的新y位置已更改。Java-如何在不丟失現有圖形的情況下在JFrame上繪圖
如何更改下面的程序來繪製很多帶有新y位置的「hello」字樣?非常感謝您的幫助。
感謝
碼
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();
}
}
你想讓它們一次全部打印,還是隻是一段時間打印? – MadProgrammer
'框架必須依次繪製許多字符串「你好」,直到程序被迫停止。 - 不要做自定義繪畫。相反,只需將文本添加到JTextArea。有關詳細信息,請閱讀[使用文本組件](http://docs.oracle.com/javase/tutorial/uiswing/components/text.html)上的Swing教程。 – camickr
@camickr你應該做出這樣的答案,然後OP似乎試圖做的事實際上是可行的:P – MadProgrammer