Я хочу, чтобы моя программа java рисовала строку «hello», поскольку параметр метода ввода изменяется, не теряя при этом предыдущие рисунки. Другими словами, кадр должен рисовать много строк «Hello» один за другим, пока программа не будет остановлена. В настоящее время он показывает только одно слово «привет» с измененной новой позицией y.Java-Как рисовать на JFrame, не теряя существующий чертеж
Как изменить программу ниже, чтобы нарисовать много слов «привет» с новыми позициями 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();
}
}
Вы хотите, чтобы они печатались сразу или просто печатались с течением времени? – MadProgrammer
'кадр должен нарисовать много строк« Привет »один за другим, пока программа не будет остановлена.' - Не выполняйте обычную роспись. Вместо этого просто добавьте текст в JTextArea. Прочтите учебник Swing [Использование текстовых компонентов] (http://docs.oracle.com/javase/tutorial/uiswing/components/text.html) для получения дополнительной информации. – camickr
@camickr Вы должны сделать ответ, было бы практично тогда, что OP, похоже, пытается сделать: P – MadProgrammer