# Einen String bewegen wie?



## java007 (7. Mai 2010)

Hallo Leute,

ich habe es geschaft einen String mit
drawString(); auf dem Bildschirm auszugeben nun würde mich interessieren wie ich eine bewegung hinzufügen könnte, sodass der String z.B. auf der Zeile bleibt und nach rechts bewegt wird mit anschließendem start von links wieder.

VGrüße


----------



## Sempah (7. Mai 2010)

die X Koordinate in bspw. einer Schleifen inkrementieren?


----------



## java007 (7. Mai 2010)

hört sich logisch an, ich werde es mal versuchen

v grüße


----------



## Niki (7. Mai 2010)

```
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class StringBewegen extends JFrame {

	private StringBewegenPanel panel = null;

	public StringBewegen() {
		super("String bewegen");
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setLayout(new BorderLayout());

		panel = new StringBewegenPanel();
		panel.setPreferredSize(new Dimension(300, 100));
		final JButton button = new JButton("Start");

		add(button, BorderLayout.NORTH);
		add(panel, BorderLayout.CENTER);

		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				new Thread(new Runnable(){
					public void run() {
						button.setEnabled(false);
						int w = panel.getWidth(); 
						for(int i = panel._x; i < w; i++){
							panel._x = i;
							try {
								Thread.sleep(50);
							} catch (InterruptedException e) {
								
							}
							SwingUtilities.invokeLater(new Runnable(){
								public void run() {
									panel.validate();
									panel.repaint();
								};								
							});								
						}
						panel._x = 20;
						panel.repaint();
						button.setEnabled(true);						
					}
				}).start();
				

			}
		});

		setResizable(false);
		pack();
		setVisible(true);
	}

	private class StringBewegenPanel extends JPanel {

		private int _x = 20;
		private int _y = 20;

		@Override
		protected void paintComponent(Graphics arg0) {
			super.paintComponent(arg0);
			arg0.drawString("Ich bewege mich", _x, _y);
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new StringBewegen().setVisible(true);
	}

}
```


----------

