В Ьге блоке моего кода либо из SetText() или setLocation() работает хорошо отдельно, как описано ниже:Как иметь одновременное setLocation и setText в JLabel?
После кода переместите метку в правильном направлении (каждый раз 50 Pxl) в соответствии с данным сном:
.........
label.setLocation((label.getLocationOnScreen().x+50),0);
Thread.sleep(time[i]);
...............
После кода установите текст правильно ("Name 1", "Имя 2" и т.д.) в соответствии с данным сна:
...................
label.setText(name[i]);
Thread.sleep(time[i]);
....................
После кода установите текст правильно ("Name 1", «Имя 2» и т. Д.) В соответствии с данным сном, но не перемещает JLabel:
....................
label.setText(name[i]);
label.setLocation((label.getLocationOnScreen().x+50),0);
Thread.sleep(time[i]);
....................
Мне нужно обоим. Другими словами, в первом движении он должен показывать «Имя 1», во 2-ом движении «Имя 2» и так далее.
Я новичок в java и программировании. Поэтому любезно помогите мне получить требуемый результат. Спасибо в ожидании.
Мой полный код, как показано ниже:
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
class Move {
JFrame frame = new JFrame();
JLabel label = new JLabel("Journey");
static int x=0;
public Move() {
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(800,600);
frame.setLayout(new GridLayout());
frame.add(label);
label.setLocation(0, 0);
frame.setVisible(true);
doAll();
}
void doAll(){
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try{
String[] name={"Name 1","Name 2","Name 3","Name 4","Name 5","Name 6","Name 7","Name 8","Name 9","Name 10"};
int time []={2000,1000,2000,1000,2000,1000,2000,1000,2000,1000};
for (int i=0; i<10; i++){
label.setText(name[i]);
label.setLocation((label.getLocationOnScreen().x+50),0);
Thread.sleep(time[i]);
}
}catch(Exception ae){
}
}
});
t.start();
}
public static void main(String[]args){
new Move();
}
}
Ваш ответ сработал хорошо, и он также густо воспитателен. – Jit