JButton removt sich selbst

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, eine Frage, in meinem folgendem Code habe ich einen Button erstellt, der, wenn man diesen drückt, sich selbst zerstört(siehe Zeile 23) und dann viele andere Dinge an das JFrame added, in dem er drin ist,
aber wenn ich auf ihn klicke, geht der Button nicht weg, und das frame wird transparent, und nichts funktioniert mehr, wieso?
Woran könnte ich arbeiten, was mache ich falsch?
Java:
public class Konfig extends JFrame
{
	public Konfig()
	{
		Toolkit tk = null;
		final Dimension d = tk.getDefaultToolkit().getScreenSize();
		
		setSize(d);
		setTitle("R.a.t.r.o.t.c.p.");		 
		setUndecorated(true);		    
		setVisible(true);
		setIconImage(new ImageIcon("F:/Rayman/Icon.jpg").getImage());	 
		setLayout(null);  	
		Cursor cur = getToolkit().createCustomCursor(new ImageIcon( "F:/Cursor.gif" ).getImage(),new Point(0,5), "Cursor" );
		setCursor( cur );
		///////
	
		final JButton bu = new JButton("Bestätigen");
		bu.setBounds(0,0,200,20);add(bu);
		bu.addActionListener( new ActionListener() 
{public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{	
remove(bu);
		
		 GraphicsConfiguration config111 = SimpleUniverse.getPreferredConfiguration();
	     Canvas3D canvas2 = new Canvas3D(config111);
	  	 canvas2.setBounds(d.width/4,1,d.width/3+d.width/3+d.width/3,d.height);
	     SimpleUniverse u = new SimpleUniverse(canvas2);
	  	 u.addBranchGraph(createSceneGraph());
	  	 add(canvas2);
		///////
		JLabel l = new JLabel("...Konfiguriere...");
		l.setForeground(Color.black);l.setBounds(0,0,200,20);add(l);
		
		JProgressBar a = new JProgressBar();a.setBackground(Color.gray); a.setForeground(Color.yellow);
		a.setBounds(40,40,d.width/4,20);add(a);
		
		JProgressBar b = new JProgressBar();b.setBackground(Color.gray); b.setForeground(Color.orange);
		b.setBounds(40,80,d.width/4,20);add(b);
		 
		JProgressBar c = new JProgressBar();c.setBackground(Color.gray); c.setForeground(Color.red);
		c.setBounds(40,120,d.width/4,20);add(c);
		
		JProgressBar de = new JProgressBar();de.setBackground(Color.gray); de.setForeground(Color.green);
		de.setBounds(40,160,d.width/4,20);add(de);

		JProgressBar e = new JProgressBar();e.setBackground(Color.gray); e.setForeground(Color.blue);
		e.setBounds(40,200,d.width/4,20);add(e);

		JProgressBar f = new JProgressBar();f.setBackground(Color.gray); f.setForeground(Color.black);
		f.setBounds(40,240,d.width/4,20);add(f);
		//
		warte(250);
		a.setValue(10);
		warte(250);
		a.setValue(20);
		warte(250);
		a.setValue(30);
		warte(250);
		a.setValue(40);
		warte(250);
		a.setValue(50);
		warte(250);
		a.setValue(60);
		warte(250);
		a.setValue(70);
		warte(250);
		a.setValue(80);
		warte(250);
		a.setValue(90);
		warte(250);
		a.setValue(100);
		//
		warte(250);
		b.setValue(10);
		warte(250);
		b.setValue(20);
		warte(250);
		b.setValue(30);
		warte(250);
		b.setValue(40);
		warte(250);
		b.setValue(50);
		warte(250);
		b.setValue(60);
		warte(250);
		b.setValue(70);
		warte(250);
		b.setValue(80);
		warte(250);
		b.setValue(90);
		warte(250);
		b.setValue(100);
				//
		warte(1000);
		JLabel l2 = new JLabel();
		l2.setText("Konfiguration beendet.");add(l2); l2.setBounds(0,d.height-d.height/4,200,20);
		JButton but = new JButton("Fortfahren -->>");
		but.setText("Forfahren -->>");
		add(but);but.setBounds(0,d.height-40,d.width/4,20);add(but);
		add(but);
		but.addActionListener( new ActionListener()
 {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{
			//tu was			
		}});
		
		}});
	}
	

  public static void warte(long millis){try{Thread.sleep(millis);}catch(InterruptedException e){}}

  public static void main(String[]args)
  {
	  new Konfig();
  }
}
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Ach herrje. Zweifach geschachtelte ActionListeners und dann auch noch so verwirrende Benennungen und keine vernünftigen Einrückungen. :rolleyes: but wird übrigens dreimal hinzugefügt; zweimal Zeile 98 und einmal Zeile 99.

Nee, bei dem Code sehe ich ehrlich nicht durch.

Ebenius
 

Geeeee

Bekanntes Mitglied
Vorsichtshalber Sorry, ABER: Der Code ist ja mal sowas von beschissen formatiert. Besonders an den Stellen wo es drauf ankommt.
Für mich _sieht_ es so aus, als ob dein Removezeug in der ActionPerformed von "bu" steht. D.h. erstens einmal, dass du es sowieso nicht "sofort" sehen kannst, ob der Button entfernt wird, weil du noch im (AWT-) / Event Dispatch-Thread hängst. (Du erinnerst dich doch sicher an die wöchentlichen Fragen hier, warum eine Progressbar keinen Fortschritt anzeigt)
Eigentlich müsste der auch nach geschätzten 10 sekunden (ganz vage ausgedrückt) irgendwas "plötzlich" passieren.
 

Developer_X

Top Contributor
ganz einfach gesagt:
1.Button wird erstellt "bu"
2. Button(wenn gedrückt) remove("bu");
3.adde ganz viele sachen, ProgressBars und Labels
4. mit der methode warte(int i);
werden die ProgressBars unterschiedlich gefüllt

so aber das passiert nicht in meinem Code

und der Action listener der eingeschachtelt ist, wird erst geadded, nach den ganzen warte() dingern,

so ich denke mal jetzt hab ichs einigermaßen geschildert.
PS:
Ich habe die warte Methoden mit angezeigt weil vielleicht deswegen das ganze nciht funktioniert
 
B

Beni

Gast
[HIGHLIGHT="Java"]{public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
[/HIGHLIGHT]

Wielange wurdest du gefoltert, dass du sowas schreibst? Freiwillig kannst du das nicht getan haben... :autsch:
 

Developer_X

Top Contributor
Vorsichtshalber Sorry, ABER: Der Code ist ja mal sowas von beschissen formatiert. Besonders an den Stellen wo es drauf ankommt.
Für mich _sieht_ es so aus, als ob dein Removezeug in der ActionPerformed von "bu" steht. D.h. erstens einmal, dass du es sowieso nicht "sofort" sehen kannst, ob der Button entfernt wird, weil du noch im (AWT-) / Event Dispatch-Thread hängst. (Du erinnerst dich doch sicher an die wöchentlichen Fragen hier, warum eine Progressbar keinen Fortschritt anzeigt)
Eigentlich müsste der auch nach geschätzten 10 sekunden (ganz vage ausgedrückt) irgendwas "plötzlich" passieren.

ja nach einiger Zeit passiert das, aber genau das soll es nciht,

der button soll sich removen, das andere Zeugs anzeigen,
dann mit warte() und den ProgressBars rumspielen, und dann den Button "but" anzeigen
verstehst du was ich meine?
PS:
Ich habs jetzt mitlerweile auch so umgeschrieben, dass die methode remove, vor den warte() spielereien sind
 
M

MiDniGG

Gast
Sorry. Mir is langweilig... mach nen repaint(); rein ;) schüsschen :oops:
 

gizmo

Bekanntes Mitglied
1. Formatiere deinen Code anständig.
2. Erstelle ein Minimalbeispiel welches das Problem aufzeigt.
3. Sorge dafür, dass dieses kompilierbar ist, ohne Fremdbibliotheken
 

Geeeee

Bekanntes Mitglied
ich hab deinen code gerade mal in eine IDE geschmissen und autoformat gemacht=> Dein remove hängt in dem ActionListener des gleichen Buttons. (bu)
D.h. erst kommt dein ganzes Wartezeuch und dann schmeißte den raus.

[EDIT]das geht hier ja so schnell :D
ein repaint() ändert an der ganzen Konstruktion gar nix.
Analogie: Wenn einer mit nem Besen rumsteht (Button) und ich ihm sage "putz" (ActionPerformed) und er dann in seiner Putzmethode(die ActionPerformed-Methode) weiß, dass er sich danach in Luft auflösen soll -nachdem er seinen Kollegen (but) gerufen hat-, dann wird er trotzdem erstmal putzen bis er fertig ist.
 
Zuletzt bearbeitet:

Developer_X

Top Contributor
hier mal ein ganz einfaches Beispiel
Java:
public class Konfig extends JFrame
{
	public Konfig()
	{
		Toolkit tk = null;
		final Dimension d = tk.getDefaultToolkit().getScreenSize();
		
		setSize(d);
		setTitle("R.a.t.r.o.t.c.p.");		 
		setUndecorated(true);		    
		setVisible(true);
		setIconImage(new ImageIcon("F:/Rayman/Icon.jpg").getImage());	 
		setLayout(null);  	
		Cursor cur = getToolkit().createCustomCursor(new ImageIcon( "F:/Cursor.gif" ).getImage(),new Point(0,5), "Cursor" );
		setCursor( cur );
		///////
	
		final JButton bu = new JButton("Bestätigen");
		bu.setBounds(0,0,200,20);add(bu);
		bu.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{		
			remove(bu);
//hier repaint(); ??
JLabel l = new JLabel("...Konfiguriere...");
		l.setForeground(Color.black);l.setBounds(0,0,200,20);add(l);
		
		JProgressBar a = new JProgressBar();a.setBackground(Color.gray); a.setForeground(Color.yellow);
		a.setBounds(40,40,d.width/4,20);add(a);
		warte(250);
		a.setValue(10);

JButton but = new JButton("Fortfahren -->>");
		but.setText("Forfahren -->>");
		add(but);but.setBounds(0,d.height-40,d.width/4,20);add(but);
		add(but);
		but.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{
			//tu was
			System.out.println("weiß auch nicht weiter...!:(");
		}});

		}});
}
}
 

Ebenius

Top Contributor
Ignorierst Du meinen Beitrag? Dort steht doch alles schon drin? [post=507018]Die Antwort auf Deine Frage[/post]
Du kannst wenigstens der Höflichkeit halber so tun, als ob Du Dir das Dokument mal angesehen hast. Du blockierst den Thread der zeichnen soll. Deswegen wird nicht gezeichnet. Das funktioniert so eben nicht. Und das Tutorial erklärt super, wie man's statt dessen macht. Man muss es eben nur lesen! :rtfm:

Ebenius
 

Developer_X

Top Contributor
Ignorierst Du meinen Beitrag? Dort steht doch alles schon drin? [post=507018]Die Antwort auf Deine Frage[/post]
Du kannst wenigstens der Höflichkeit halber so tun, als ob Du Dir das Dokument mal angesehen hast. Du blockierst den Thread der zeichnen soll. Deswegen wird nicht gezeichnet. Das funktioniert so eben nicht. Und das Tutorial erklärt super, wie man's statt dessen macht. Man muss es eben nur lesen! :rtfm:

Ebenius
sorry den hab ich net gesehen
 
M

MiDniGG

Gast
hier mal ein ganz einfaches Beispiel
Java:
public class Konfig extends JFrame
{
	public Konfig()
	{
		Toolkit tk = null;
		final Dimension d = tk.getDefaultToolkit().getScreenSize();
		
		setSize(d);
		setTitle("R.a.t.r.o.t.c.p.");		 
		setUndecorated(true);		    
		setVisible(true);
		setIconImage(new ImageIcon("F:/Rayman/Icon.jpg").getImage());	 
		setLayout(null);  	
		Cursor cur = getToolkit().createCustomCursor(new ImageIcon( "F:/Cursor.gif" ).getImage(),new Point(0,5), "Cursor" );
		setCursor( cur );
		///////
	
		final JButton bu = new JButton("Bestätigen");
		bu.setBounds(0,0,200,20);add(bu);
		bu.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{		
			remove(bu);
//hier repaint(); ??
JLabel l = new JLabel("...Konfiguriere...");
		l.setForeground(Color.black);l.setBounds(0,0,200,20);add(l);
		
		JProgressBar a = new JProgressBar();a.setBackground(Color.gray); a.setForeground(Color.yellow);
		a.setBounds(40,40,d.width/4,20);add(a);
		warte(250);
		a.setValue(10);

JButton but = new JButton("Fortfahren -->>");
		but.setText("Forfahren -->>");
		add(but);but.setBounds(0,d.height-40,d.width/4,20);add(but);
		add(but);
		but.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{
			//tu was
			System.out.println("weiß auch nicht weiter...!:(");
		}});

		}});
}
}

Ich glaub nicht, dass irgendjemand diese komischen Bilder von Dir hat... Also sieht keiner ne Maus, wenn er den Code testen will... Machs doch mal allgemeingültig!
Aba egal. Ich bin raus ^^
 

Geeeee

Bekanntes Mitglied
[Edit] Das repaint macht erst richtig sinn, wenn er es in der paint-methode aufruft :D Dann kann auch nix mehr "plötzlich" passieren.[/Edit]
Ich hatte es ja auch noch (schon) geschrieben.
Evtl. sollten mal die "es wird nix dargestellt", "meine progressbar is kaputt" ... - Threads in jedes Forum gepinnt werden (rosa rot hinterlegt mit grün blinkendem Text) wo nur der Hauch einer Chance besteht, dass es zu solchen Fragen kommt.
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
Holy fucking crap, jetzt verstehe ich erst, warum ihr so eine Komödie aus Developer_X's Threads jedes mal veranstaltet^^ :lol:

Was für ein Hack, ach du meine Güte^^
[edit: ich übertreib's wie immer ein wenig -.- ]

Hab's kurz formattiert und diese 500 zeilen langen warte-abschnitte gekillt, und das ganze irgendwie so gradgebogen, dass man den cursor wieder sieht, bzw dass man da erstmal überhaupt IRGENDWAS sieht, ich hab da ~2 Minuten gebraucht, bis ich einen Grauen Bildschirm sehen konnte omfg^^

[highlight=Java]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

@SuppressWarnings("serial")
public class Konfig extends JFrame {
public Konfig() {
final Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

setSize(d);
setTitle("R.a.t.r.o.t.c.p.");
setUndecorated(true);
setVisible(true);
setIconImage(new ImageIcon("F:/Rayman/Icon.jpg").getImage());
setLayout(null);

// Cursor cur = getToolkit().createCustomCursor(
// new ImageIcon("F:/Cursor.gif").getImage(), new Point(0, 5),
// "Cursor");
// setCursor(cur);

final JButton bublubup = new JButton("Bestätigen");
bublubup.setBounds(0, 0, 200, 20);
add(bublubup);
bublubup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}

private void b1ActionPerformed(ActionEvent evt) {
(new Thread(){
@Override public void run(){
JLabel l = new JLabel("...Konfiguriere...");
l.setForeground(Color.black);
l.setBounds(0, 0, 200, 20);
add(l);

JProgressBar a = new JProgressBar();
a.setBackground(Color.gray);
a.setForeground(Color.yellow);
a.setBounds(40, 40, d.width / 4, 20);
add(a);

JProgressBar b = new JProgressBar();
b.setBackground(Color.gray);
b.setForeground(Color.orange);
b.setBounds(40, 80, d.width / 4, 20);
add(b);

JProgressBar c = new JProgressBar();
c.setBackground(Color.gray);
c.setForeground(Color.red);
c.setBounds(40, 120, d.width / 4, 20);
add(c);

JProgressBar de = new JProgressBar();
de.setBackground(Color.gray);
de.setForeground(Color.green);
de.setBounds(40, 160, d.width / 4, 20);
add(de);

JProgressBar e = new JProgressBar();
e.setBackground(Color.gray);
e.setForeground(Color.blue);
e.setBounds(40, 200, d.width / 4, 20);
add(e);

JProgressBar f = new JProgressBar();
f.setBackground(Color.gray);
f.setForeground(Color.black);
f.setBounds(40, 240, d.width / 4, 20);
add(f);

for(int i=0; i<=100; i+=10){
a.setValue(i);
warte(100);
}

for(int i=0; i<=100; i+=10){
b.setValue(i);
warte(100);
}

JLabel l2 = new JLabel();
l2.setText("Konfiguration beendet.");
add(l2);
l2.setBounds(0, d.height - d.height / 4, 200, 20);
JButton buttsex = new JButton("Fortfahren -->>");
buttsex.setText("Forfahren -->>");
add(buttsex);
buttsex.setBounds(0, d.height - 40, d.width / 4, 20);
add(buttsex);
add(buttsex);
buttsex.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}

private void b1ActionPerformed(ActionEvent evt) {
System.exit(0xA55FACE);
}
});
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
remove(bublubup);
}
});
}
}).start();
}
});
}

public static void warte(long millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
}
}

public static void main(String[] args) {
new Konfig();
}
}

[/highlight]

so, hoffentlich kann man da jetzt bisschen was lesen^^

@Developer_X: ehrlich gesagt, kann man dir nicht mal übel nehmen, dass du bei diesem EventDispatch-Thread nicht durchblickst und hier eine einfrierende GUI fabriziert hast, das hat so ziemlich jeder mal vermasselt, der je was mit swing gemacht hat.

Was man dir aber durchaus übel nehmen kann, ist die tatsache, dass du dich auf die GUI's stürzst, ohne die Grundlagen kapiert zu haben (so habe ich neulich gelesen, dass du zB vor kurzem erst gelernt hast, wie man methoden in eigenen Klassen einfügt: ähm, was hast du die ganze Zeit davor getan?! :autsch: )

Außerdem: zeige ein bisschen Mitleid gegenüber deinen Mitmenschen, wenn du es nicht selbst formatieren kannst, dann benutze wenigstens STRG+SHIFT+F... ;(
 
Zuletzt bearbeitet:

Developer_X

Top Contributor
danke jetzt funzts auch bei mir, aber damit ihr nicht denkt dass ich ncihts gemacht hätte
@EBENIUS
ich hab mir mal deinen TIpp genauer angesehen, und dabei bin ich auf einen Code gestoßen, wenn du verstehst was ich mein "Flipper.java" daraus hab ich versucht das in meinem Beispiel einzubauen, hat nicht funktioniert, aber ich hab versucht, hier die ganze aber auch falsche Klasse
Java:
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
import java.util.Random;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.Background;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.PointArray;
import javax.media.j3d.PointAttributes;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;
import com.sun.j3d.utils.universe.SimpleUniverse;


public class Konfig extends JFrame
{
	FlipTask fliptask;
	 private static class FlipPair {
	        private final long heads, total;
	        FlipPair(long heads, long total) {
	            this.heads = heads;
	            this.total = total;
	        }
	    }

	    private class FlipTask extends SwingWorker<Void, FlipPair> {
	        @Override
	        protected Void doInBackground() {
	            long heads = 0;
	            long total = 0;
	            Random random = new Random();
	            while (!isCancelled()) {
	                total++;
	                if (random.nextBoolean()) {
	                    heads++;
	                }
	                publish(new FlipPair(heads, total));
	            }
	            return null;
	        }

	        @Override
	        protected void process(List<FlipPair> pairs) {
	            FlipPair pair = pairs.get(pairs.size() - 1);	                            
	        }
	    }
	    
	public Konfig()
	{
		Toolkit tk = null;
		final Dimension d = tk.getDefaultToolkit().getScreenSize();
		
		setSize(d);
		setTitle("R.a.t.r.o.t.c.p.");		 
		setUndecorated(true);		    
		setVisible(true);
		setIconImage(new ImageIcon("F:/Rayman/Icon.jpg").getImage());	 
		setLayout(null);  	
		Cursor cur = getToolkit().createCustomCursor(new ImageIcon( "F:/Cursor.gif" ).getImage(),new Point(0,5), "Cursor" );
		setCursor( cur );
		///////
	
		
		final JButton bu = new JButton("Bestätigen");
		bu.setBounds(0,0,200,20);add(bu);
		bu.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) {
	        if ("Bestätigen" == e.getActionCommand()) {		
			remove(bu);

			repaint();
		 GraphicsConfiguration config111 = SimpleUniverse.getPreferredConfiguration();
	     Canvas3D canvas2 = new Canvas3D(config111);
	  	 canvas2.setBounds(d.width/4,1,d.width/3+d.width/3+d.width/3,d.height);
	     SimpleUniverse u = new SimpleUniverse(canvas2);
	  	 u.addBranchGraph(createSceneGraph());
	  	 add(canvas2);
		///////
		JLabel l = new JLabel("...Konfiguriere...");
		l.setForeground(Color.black);l.setBounds(0,0,200,20);add(l);
		
		JProgressBar a = new JProgressBar();a.setBackground(Color.gray); a.setForeground(Color.yellow);
		a.setBounds(40,40,d.width/4,20);add(a);
		
		JProgressBar b = new JProgressBar();b.setBackground(Color.gray); b.setForeground(Color.orange);
		b.setBounds(40,80,d.width/4,20);add(b);
		 
		JProgressBar c = new JProgressBar();c.setBackground(Color.gray); c.setForeground(Color.red);
		c.setBounds(40,120,d.width/4,20);add(c);
		
		JProgressBar de = new JProgressBar();de.setBackground(Color.gray); de.setForeground(Color.green);
		de.setBounds(40,160,d.width/4,20);add(de);

		JProgressBar e1 = new JProgressBar();e1.setBackground(Color.gray); e1.setForeground(Color.blue);
		e1.setBounds(40,200,d.width/4,20);add(e1);

		JProgressBar f = new JProgressBar();f.setBackground(Color.gray); f.setForeground(Color.black);
		f.setBounds(40,240,d.width/4,20);add(f);
		//
		warte(250);
		a.setValue(10);
		warte(250);
		a.setValue(20);
		warte(250);
		a.setValue(30);
		warte(250);
		a.setValue(40);
		warte(250);
		a.setValue(50);
		warte(250);
		a.setValue(60);
		warte(250);
		a.setValue(70);
		warte(250);
		a.setValue(80);
		warte(250);
		a.setValue(90);
		warte(250);
		a.setValue(100);
		//
		warte(250);
		b.setValue(10);
		warte(250);
		b.setValue(20);
		warte(250);
		b.setValue(30);
		warte(250);
		b.setValue(40);
		warte(250);
		b.setValue(50);
		warte(250);
		b.setValue(60);
		warte(250);
		b.setValue(70);
		warte(250);
		b.setValue(80);
		warte(250);
		b.setValue(90);
		warte(250);
		b.setValue(100);
		//
		warte(250);
		c.setValue(10);
		warte(250);
		c.setValue(20);
		warte(250);
		c.setValue(30);
		warte(250);
		c.setValue(40);
		warte(250);
		c.setValue(50);
		warte(250);
		c.setValue(60);
		warte(250);
		c.setValue(70);
		warte(250);
		c.setValue(80);
		warte(250);
		c.setValue(90);
		warte(250);
		c.setValue(100);
		//		
		warte(250);
		de.setValue(10);
		warte(250);
		de.setValue(20);
		warte(250);
		de.setValue(30);
		warte(250);
		de.setValue(40);
		warte(250);
		de.setValue(50);
		warte(250);
		de.setValue(60);
		warte(250);
		de.setValue(70);
		warte(250);
		de.setValue(80);
		warte(250);
		de.setValue(90);
		warte(250);
		de.setValue(100);
		//
		warte(250);
		e1.setValue(10);
		warte(250);
		e1.setValue(20);
		warte(250);
		e1.setValue(30);
		warte(250);
		e1.setValue(40);
		warte(250);
		e1.setValue(50);
		warte(250);
		e1.setValue(60);
		warte(250);
		e1.setValue(70);
		warte(250);
		e1.setValue(80);
		warte(250);
		e1.setValue(90);
		warte(250);
		e1.setValue(100);
		//
		warte(250);
		f.setValue(10);
		warte(250);
		f.setValue(20);
		warte(250);
		f.setValue(30);
		warte(250);
		f.setValue(40);
		warte(250);
		f.setValue(50);
		warte(250);
		f.setValue(60);
		warte(250);
		f.setValue(70);
		warte(250);
		f.setValue(80);
		warte(250);
		f.setValue(90);
		warte(250);
		f.setValue(100);
		//
		warte(1000);
		JLabel l2 = new JLabel();
		l2.setText("Konfiguration beendet.");add(l2); l2.setBounds(0,d.height-d.height/4,200,20);
		JButton but = new JButton("Fortfahren -->>");
		but.setText("Forfahren -->>");
		add(but);but.setBounds(0,d.height-40,d.width/4,20);add(but);
		add(but);
		but.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent evt) {b1ActionPerformed(evt);}private void b1ActionPerformed(ActionEvent evt)
		{
			//tu was
			System.out.println("weiß auch nicht weiter...!:(");
		}});

		}}});
	}
		
	 void createStarBackground(BranchGroup bg)
     {
     java.util.Random rand = new java.util.Random();
     float            mag;
     BranchGroup      BGBranch=new BranchGroup();
     Background       BG=new Background();    

     PointArray starfield = new PointArray(15000, PointArray.COORDINATES|PointArray.COLOR_3);
     float[] point = new float[3];
     float[] brightness = new float[3];
     for (int i = 0; i < 15000; i++)
        {
        point[0] = (rand.nextInt(2) == 0) ? rand.nextFloat() * -1.0f :rand.nextFloat();
        point[1] = (rand.nextInt(2) == 0) ? rand.nextFloat() * -1.0f :rand.nextFloat();
        point[2] = (rand.nextInt(2) == 0) ? rand.nextFloat() * -1.0f :rand.nextFloat();
        starfield.setCoordinate(i, point);
        mag=(rand.nextFloat()+1.5f)/1.5f;
        brightness[0]=mag;
        brightness[1]=mag;
        brightness[2]=mag;
        starfield.setColor(i, brightness);
        }
     Shape3D StarShape=new Shape3D(starfield);
     StarShape.setAppearance(new Appearance());
     StarShape.getAppearance().setPointAttributes(new PointAttributes(1f,true));
     BGBranch.addChild(StarShape);
     BG.setGeometry(BGBranch);
     BG.setApplicationBounds(new BoundingSphere(new Point3d(),10.0));

     bg.addChild(BG);
     }
	public BranchGroup createSceneGraph()
	     {
	     final BranchGroup          BG = new BranchGroup();
	        //
	      DirectionalLight     DLgt=new DirectionalLight(new Color3f(0.8f,0.8f,0.8f),new Vector3f(-0.5f,-1f,-0.5f));
	      AmbientLight         ALgt=new AmbientLight(new Color3f(0.8f,0.8f,0.8f));
	      BoundingSphere       BigBounds=new BoundingSphere(new Point3d(),100000);

	      ALgt.setInfluencingBounds(BigBounds);
	      DLgt.setInfluencingBounds(BigBounds);
	      BG.addChild(ALgt);
	      BG.addChild(DLgt);
	      	//
	        
	      Transform3D ray = new Transform3D();
	      ray.rotY(Math.toRadians(180));
	      ray.setTranslation(new Vector3f(-1,0,-4f));
	      TransformGroup Ray = new TransformGroup();
	      Ray.setTransform(ray); BG.addChild(Ray);
	      Ray.addChild(new Rayman.Rayman_Head(0.7f).getChild());
	      
	      Transform3D bud = new Transform3D();
	      bud.rotY(Math.toRadians(180));
	      bud.setTranslation(new Vector3f(-1,-0.7f,-4f));
	      TransformGroup Bud = new TransformGroup();
	      Bud.setTransform(bud); BG.addChild(Bud);
	      Bud.addChild(new Rayman.Rayman_Body(0.7f).getChild());
	      
	      Transform3D Wächter = new Transform3D();
	      Wächter.rotY(Math.toRadians(0));
	      Wächter.setTranslation(new Vector3f(0,0f,-8f));
	      TransformGroup wächter = new TransformGroup();
	      wächter.setTransform(Wächter); BG.addChild(wächter);
	      wächter.addChild(new Rayman.Gardier().getChild());
	  
	      	//
	     createStarBackground(BG);
	     
	     BG.compile();
	     return BG;
	     }
	
	  
	static public String getContents(File aFile) {
	    StringBuilder contents = new StringBuilder();  
	    try {
	      BufferedReader input =  new BufferedReader(new FileReader(aFile));
	      try {
	        String line = null; 
	        while (( line = input.readLine()) != null){
	          contents.append(line);
	        }
	      }
	      finally {
	        input.close();
	      }
	    }
	    catch (IOException ex){
	      ex.printStackTrace();
	    }
	    
	    return contents.toString();
	  }
  static public void setContents(File aFile, String aContents)
	                                 throws FileNotFoundException, IOException {
	    if (aFile == null) {
	      throw new IllegalArgumentException("File should not be null.");
	    }
	    if (!aFile.exists()) {
	      throw new FileNotFoundException ("File does not exist: " + aFile);
	    }
	    if (!aFile.isFile()) {
	      throw new IllegalArgumentException("Should not be a directory: " + aFile);
	    }
	    if (!aFile.canWrite()) {
	      throw new IllegalArgumentException("File cannot be written: " + aFile);
	    }
	    Writer output = new BufferedWriter(new FileWriter(aFile));
	    try {
	      output.write( aContents );
	    }
	    finally {
	      output.close();
	    }
	  }
  public static void warte(long millis){try{Thread.sleep(millis);}catch(InterruptedException e){}}

  public static void main(String[]args)
  {
	  new Konfig();
  }
}
PS:
Der Thread kann geschlossen werden
PS²:
net bös gemeint der lange code, ich will euch nur zeigen, dass ich auch wenn ich die lösung schon habe, trotzdem noch mal versucht hab Ebenius' Tipp nachzugehen
Danke an euch alle, durch eure Hilfe hab ichs geschafft danke, man an alle die in diesem Thread mitgemacht haben!
 
Zuletzt bearbeitet von einem Moderator:

The_S

Top Contributor
"Gründe die ich hier nicht nennen will" ... sau geil :lol: (um hier auch mal zu spamen, ja, verschiebt mich ruhig ;) ).

PS: Es heißt nicht PS² sondern eher PSS. Für die ganz ausgefuchsten noch mit nem Punkt dazwischen.

[edit]Schwachsinn, natürlich PPS. :oops:
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Weil das repaint() doch gar nichts mit dem Problem zu tun hatte. EDT angehalten; da kannst Du repaint() aufrufen, bis Dir Flügel wachsen.

PS: Es heißt nicht PS² sondern eher PSS.
Es heißt PPS. Siehe Wikipedia: Postskriptum.

danke jetzt funzts auch bei mir, aber damit ihr nicht denkt dass ich ncihts gemacht hätte
@EBENIUS
ich hab mir mal deinen TIpp genauer angesehen, und dabei bin ich auf einen Code gestoßen, wenn du verstehst was ich mein "Flipper.java" daraus hab ich versucht das in meinem Beispiel einzubauen, hat nicht funktioniert, aber ich hab versucht, hier die ganze aber auch falsche Klasse
Dir fehlen ganz deutlich die Grundlagen. Ich glaube Dir, dass Du es Dir angesehen hast, aber Du hast es eben nicht verstehen können. Das ist kein Problem. Aber nimm den Fuß vom Gas und lerne schrittweise. Wenn Du noch nicht weißt, wie man einen Schraubendreher hält, dann solltest Du Dich auch noch nicht mit KFZ-Getriebe-Sanierung beschäftigen.

Ebenius
 
M

MiDniGG

Gast
Weil das repaint() doch gar nichts mit dem Problem zu tun hatte. EDT angehalten; da kannst Du repaint() aufrufen, bis Dir Flügel wachsen.

Ja OK. Und außerdem is, wie mir gerade ausführlich erklärt wurde, ein validate(); dann auch noch besser.
Ich bin still. :autsch:
 

diggaa1984

Top Contributor
egal ob es irgendwann ma klappt, aber was bitte schön is das fürn hack, der muss der doch gleich das programm zerschiessen

Java:
Toolkit tk = null;
final Dimension d = tk.getDefaultToolkit().getScreenSize();
???:L
 

Ebenius

Top Contributor
egal ob es irgendwann ma klappt, aber was bitte schön is das fürn hack, der muss der doch gleich das programm zerschiessen
Nein. Eine statische Methode wird zur Compile-Time gegen die Klasse aufgelöst. Die Variable mit dem Wert null wird zur Laufzeit nie benutzt.

Schmutzig ist's trotzdem. Aber aus welchem Grund verheimlichst Du dem Developer_X, wie man es besser macht? :autsch: So:
Java:
Toolkit.getDefaultToolkit().getScreenSize();

Ebenius
 

diggaa1984

Top Contributor
ach nu versteh ich das. Wusste nicht, dass es sich dabei um ne statische Methode handelt, so selten wie ich das bisher gebraucht habe. Bei der Schreibweise hätte ich auch nicht erwartet das es ne statische methode ist, welche da als erstes aufgerufen wird ;)
Deine Schreibweise macht mir dies ja implizit klar :toll:
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
M JButton setBackground() färbt nicht den ganzen Knopf Java Basics - Anfänger-Themen 4
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
J Jbutton blinkt Java Basics - Anfänger-Themen 5
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
E JButton und JTextField Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb Icon von JButton ändern Java Basics - Anfänger-Themen 1
P JButton -Arrays Java Basics - Anfänger-Themen 4
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
L Erste Schritte JButton reagiert nicht Java Basics - Anfänger-Themen 5
S Bild über JButton legen Java Basics - Anfänger-Themen 3
V Einem JButton anweisungen geben Java Basics - Anfänger-Themen 4
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
J JButton macht was er will Java Basics - Anfänger-Themen 3
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
N JButton anpassen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
schoenosrockos JButton füllt immer das ganze frame Java Basics - Anfänger-Themen 1
D JButton in JDialog mit Action belgen Java Basics - Anfänger-Themen 6
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
F JButton [] mit Werten hinterlegen Java Basics - Anfänger-Themen 10
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A weiter JButton Fehler Java Basics - Anfänger-Themen 3
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
S JCombobox und JButton verknüpfen Java Basics - Anfänger-Themen 6
V wie kann ich eine Schleife pausieren, bis ein Jbutton gedrückt wird ? Java Basics - Anfänger-Themen 17
N Erste Schritte JButton reagiert nur einmal. Java Basics - Anfänger-Themen 12
S JButton Java Basics - Anfänger-Themen 2
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3
K JButton alles zurücksetzen Java Basics - Anfänger-Themen 1
U JButton: Beschriftung ueber Variable zuweisen Java Basics - Anfänger-Themen 6
S JButton erscheint erst bei Mouseover Java Basics - Anfänger-Themen 10
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S JDK installieren JButton BorderPoints?! Java Basics - Anfänger-Themen 7
E Problem mit erben von JButton Java Basics - Anfänger-Themen 7
J Bei Hinzufügen von JButton Programm langsam Java Basics - Anfänger-Themen 3
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
S Jbutton per Passworteingabe aktivieren Java Basics - Anfänger-Themen 2
G über JButton Action einen anderen Button verändern Java Basics - Anfänger-Themen 7
H JButton - Icon(.png) aus resources laden Java Basics - Anfänger-Themen 23
M Hintergrundbild für JButton Java Basics - Anfänger-Themen 6
A jbutton - icon linksbündig, text zentriert Java Basics - Anfänger-Themen 10
M Input/Output JFrame mit JButton und JTextfield Java Basics - Anfänger-Themen 114
J Hilfe bei JButton Java Basics - Anfänger-Themen 6
A JButton[] und String[] in doppelter For-Schleife Java Basics - Anfänger-Themen 4
W JButton in gleiche Größe bringen Java Basics - Anfänger-Themen 4
pg1337 JButton zuschneiden Java Basics - Anfänger-Themen 3
T Modales JDialog schliessen mit JButton Java Basics - Anfänger-Themen 2
D JButton Array setBackground Java Basics - Anfänger-Themen 2
F JButton wie selektierter JTabbebPane-Header Java Basics - Anfänger-Themen 7
G jButton bei Klick String +1 Java Basics - Anfänger-Themen 5
C OOP Java JButton mit Funktion belegen Java Basics - Anfänger-Themen 3
S JButton wird nicht angezeigt Java Basics - Anfänger-Themen 14
C JButton.getIcon() != null Java Basics - Anfänger-Themen 3
E JButton-Text wird in Schleife nicht geändert Java Basics - Anfänger-Themen 4
F welches Layout für JButton-Liste verwenden Java Basics - Anfänger-Themen 6
T JButton Text ändern Java Basics - Anfänger-Themen 4
L JButton erscheint nur mit pack() Java Basics - Anfänger-Themen 3
U Passwort auf JButton setzen. Java Basics - Anfänger-Themen 2
E JButton Hintergrund / Rahmen entfernen? Java Basics - Anfänger-Themen 4
L Bild auf einem JButton Java Basics - Anfänger-Themen 4
K JButton.setText Problem Java Basics - Anfänger-Themen 6
M JButton und DisabledIcon Java Basics - Anfänger-Themen 2
K jButton zur Laufzeit hinzufügen Java Basics - Anfänger-Themen 22
A GUI - JButton problem! Java Basics - Anfänger-Themen 5
M JButton selbst nachprogrammieren Java Basics - Anfänger-Themen 3
A JButton Textrahmen Java Basics - Anfänger-Themen 7
A Platzierung eines JButton Java Basics - Anfänger-Themen 4
D JButton oder ImageIcon klickt "langsam" Java Basics - Anfänger-Themen 5
E JButton klassenübergreifend nutzen? Java Basics - Anfänger-Themen 6
R Liste graphischer Objekte z.B. JButton dynamisch erstellen Java Basics - Anfänger-Themen 13
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
S JButton trotz Box-Layout skalieren Java Basics - Anfänger-Themen 6
P JButton identifizieren Java Basics - Anfänger-Themen 8
K Funktion zu einem JButton hinzufügen Java Basics - Anfänger-Themen 27
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
E Auf JButton in Arraylist zugreifen Java Basics - Anfänger-Themen 6
E Andere Form eines JButton Java Basics - Anfänger-Themen 17
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
B JButton Größe einstellen? Java Basics - Anfänger-Themen 3
E Zeilenumbruch in JButton mit Variable Java Basics - Anfänger-Themen 2
A JButton erscheint nicht (BlueJ) Java Basics - Anfänger-Themen 2
M JButton sieht komisch aus :-) Java Basics - Anfänger-Themen 5
B JPanel über JButton umändern Java Basics - Anfänger-Themen 9
D JButton transparent bekommen? Java Basics - Anfänger-Themen 5
H JButton Unsichtbar Java Basics - Anfänger-Themen 7
R JTextField mittels JButton in Konsole ausgeben Java Basics - Anfänger-Themen 2
J Variable die bei JButton Clicks mitzählt Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben