hallo alle zusammen
hab ein kleines problem und hoffe es ist wirklich so klein wie ich denke^^
also
ich hab ein JFrame und dadrinne ein button.
dieser botten soll beim klick um 130 pixel nach rechts verschoben werden, aber nach jedem pixel soll der 20 millisekunden warten und dann weiterlaufen, sodas es am ende aussieht als ob es nach rechts gleiten würde.
dafür müsste ich glaube ich nach jedem schritt, dass der button macht den frame aktuallisieren.
und das ist es woran ich gescheitert bin ^^
vieleicht gibts auch eine elegantere lösung aber das ist die einzige die mir eingefallen ist.
hoffe einer kann mir helfen
MFG
wahed132
hab ein kleines problem und hoffe es ist wirklich so klein wie ich denke^^
also
ich hab ein JFrame und dadrinne ein button.
dieser botten soll beim klick um 130 pixel nach rechts verschoben werden, aber nach jedem pixel soll der 20 millisekunden warten und dann weiterlaufen, sodas es am ende aussieht als ob es nach rechts gleiten würde.
dafür müsste ich glaube ich nach jedem schritt, dass der button macht den frame aktuallisieren.
und das ist es woran ich gescheitert bin ^^
vieleicht gibts auch eine elegantere lösung aber das ist die einzige die mir eingefallen ist.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class test extends JFrame implements Runnable {
// Anfang Attribute
private JButton jButton1 = new JButton();
// Ende Attribute
int m=70;
public test(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
int frameWidth = 300;
int frameHeight = 300;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jButton1.setBounds(33, 32, 49, 33);
jButton1.setText("jButton1");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
cp.add(jButton1);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
public void jButton1_ActionPerformed(ActionEvent evt) {
Thread th = new Thread (this);
// Starten des Threads
th.start ();
while(m<200){
jButton1.setBounds(m, 32, 49, 33);
m++;
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
this.repaint();
}
catch (InterruptedException ex)
{
// do nothing
}
}
// TODO hier Quelltext einfügen
}
public void run ()
{
}
public static void main(String[] args) {
new test("test");
}
}
hoffe einer kann mir helfen
MFG
wahed132