Hallo
Ich bin gerade dabei, mir das Thema Swing ein bisschen beizubringen, hänge aber gerade bei einem Problem mit einem JLabel.
Also das Problem ist, das JLabel wird während der Schleife nicht angezeigt, jedoch außerhalb schon. Hier der Code:
Also das Programm soll Folgendes machen (ich weiß, es ist sinnlos!): Es kommt eine Eingabe wo man einen Namen eingeben soll. Das funktioniert noch wunderbar, dann soll jedoch ein neues Fenster kommen, wo auch ein Bild angezeigt werden soll. Der Titel wird immer korrekt angezeigt, jedoch das Bild nur wenn ich außerhalb der Schleife setVisible(true) setzte oder die Schleife eine feste Abbruchbedingung hat (jetzt ist es eine Endlosschleife) dann bleibt es am Schluss stehen und das Bild wird angezeigt.
Kann mir da einer von euch weiterhelfen?
Danke,
mfg,
k3rn
Ich bin gerade dabei, mir das Thema Swing ein bisschen beizubringen, hänge aber gerade bei einem Problem mit einem JLabel.
Also das Problem ist, das JLabel wird während der Schleife nicht angezeigt, jedoch außerhalb schon. Hier der Code:
Code:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.util.Random;
class win extends JFrame{
win(int x,int y,String titel){
setSize(x,y);
setTitle(titel);
}
}
public class test{
public static void main(String [] args) throws IOException{
final JFrame f=new win(300,300,"Counter-Strike");
ActionListener al=new ActionListener() {
public void actionPerformed( ActionEvent e ) {
f.setVisible(false);
Random r=new Random();
int pos1,pos2;
String s=((JTextField)e.getSource()).getText()+" DU !";
JFrame f2=new win(400,400,s);
Icon ic=new ImageIcon(".jpg");
JLabel l2=new JLabel(ic);
f2.add(l2);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
double screen1=dim.getWidth();
double screen2=dim.getHeight();
long scren1=Math.round(screen1);
long scren2=Math.round(screen2);
int x=(int)scren1-400;
int y=(int)scren2-400;
while(true){
pos1=Math.abs(r.nextInt()%x);
pos2=Math.abs(r.nextInt()%y);
f2.setLocation(pos1,pos2);
f2.toFront();
f2.setVisible(true);
myWait();
}
}
}
;
JPanel p=new JPanel(new GridLayout(1,2));
f.add(p,BorderLayout.PAGE_START );
JLabel l=new JLabel("Wie heißt du in CS?");
p.add(l);
JTextField t=new JTextField("",20);
p.add(t);
t.addActionListener(al);
f.setVisible(true);
;}
public static void myWait(){
double t=System.currentTimeMillis();
while((System.currentTimeMillis()-t)<100){}
}
}
Also das Programm soll Folgendes machen (ich weiß, es ist sinnlos!): Es kommt eine Eingabe wo man einen Namen eingeben soll. Das funktioniert noch wunderbar, dann soll jedoch ein neues Fenster kommen, wo auch ein Bild angezeigt werden soll. Der Titel wird immer korrekt angezeigt, jedoch das Bild nur wenn ich außerhalb der Schleife setVisible(true) setzte oder die Schleife eine feste Abbruchbedingung hat (jetzt ist es eine Endlosschleife) dann bleibt es am Schluss stehen und das Bild wird angezeigt.
Kann mir da einer von euch weiterhelfen?
Danke,
mfg,
k3rn