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:
Ach herrje. Zweifach geschachtelte ActionListeners und dann auch noch so verwirrende Benennungen und keine vernünftigen Einrückungen. 🙄 but wird übrigens dreimal hinzugefügt; zweimal Zeile 98 und einmal Zeile 99.

Nee, bei dem Code sehe ich ehrlich nicht durch.

Ebenius
 
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.
 
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
 
[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:
 
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
 
Sorry. Mir is langweilig... mach nen repaint(); rein 😉 schüsschen 😳
 
1. Formatiere deinen Code anständig.
2. Erstelle ein Minimalbeispiel welches das Problem aufzeigt.
3. Sorge dafür, dass dieses kompilierbar ist, ohne Fremdbibliotheken
 
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 😀
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:
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...!:(");
		}});

		}});
}
}
 
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
 
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
 
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 ^^
 
[Edit] Das repaint macht erst richtig sinn, wenn er es in der paint-methode aufruft 😀 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:
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:
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:
"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. 😳
 
Zuletzt bearbeitet:
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
 
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:
 
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
 
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
 
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.

Neue Themen


Zurück
Oben