AWT Erstellen von Checkboxen

Strongbow

Mitglied
Hi Leute, ich fange gerade mit dem Programmieren an und habe folgendes Problem:

und zwar habe ich eine Flagge (sollen zwei werden) erstellt und möchte, diese mit einer Checkbox aufruffen.

Ich weiß nur nicht wie ich da anfangen muss. könnt ihr mir dabei helfen?

Java Code:

Java:
import java.awt.*;
import java.awt.event.*;

class FlagMaker1 extends Frame {

	FlagMaker1 () {
		add ("Center", new Flag());
		addWindowListener(new WindowAdapter ( ){
			public void windowClosing(WindowEvent e){
				System.exit(0);
				
				}
		} );
		setTitle ("A Flag");
		setSize (300, 250);
		setVisible (true);
	}
    public static void main (String [] args){
    	new FlagMaker1 ();
    }
}
class Flag extends Canvas {
	public void paint (Graphics g){
		g.setColor(Color.black);
		g.fillRect(40,40,200,40);
		g.setColor(Color.red);
		g.fillRect(40, 80, 200, 40);
		g.setColor(Color.yellow);
		g.fillRect (40,120,200,40);
		
		g.setColor(Color.black);
		g.drawString("Germany",100,180);
        
     }
  }
 
Zuletzt bearbeitet von einem Moderator:

RainerUnsinn

Mitglied
Hi Strongbow,

ich verstehe dein Problem nicht so ganz. Einfach eine Checkbox hinzufügen und über den ItemListener prüfen ob die Checkbox aktiviert wurde. Wenn ja, dann die Flagge anzeigen lassen.
 

Strongbow

Mitglied
Hi,
du musst wissen, das ich erst Montag mit den Programmieren angefangen habe und ich mir dieses Flaggen Beispiel ausgesucht habe, um damit zu experimentieren.

Es wäre schön wenn ihr mir ein Java Code mit 2 Buttons (Germany,Italy) erstellen könntet, wo ich dann die jeweiligen Flaggen einsetzen kann
 
S

SlaterB

Gast
Randbemerkung:
wie wärs, nach Lehrbuch Kapitel für Kapitel vorzugehen, frühestens in Monaten bei Grafik vorbeizukommen?
selber lernen kannst du ja wie du willst, aber wenn du ohne Grundlagen die Zeit anderer beanspruchst..,
na musst du sowie die dir antwortenden selber entscheiden
 

André Uhres

Top Contributor
Der Einfachheit halber für eine einzige Checkbox:

Instanzvariablen machen für Flag und Checkbox. Panel anlegen dem du die Checkbox hinzufügst. Das Panel dem Frame hinzufügen (etwa South oder North). Einen ItemListener an die Checkbox hängen und im Listener den Status der Checkbox abfragen. Je nach Status im Flag-Objekt über eine neue Methode eine Instanzvariable so setzen, dass klar wird, was gezeichnet werden soll (und dass repaint() aufgerufen werden muss). In der paint Methode erstmal einen "g.clearRect(0, 0, getWidth(), getHeight())" machen um alles zu löschen, was vorher gezeichnet wurde. Schließlich in der paint Methode der Flag Klasse die besagte Instanzvariable abfragen und die entsprechende Flagge zeichnen.

Gruß,
André
 

Asgar13

Bekanntes Mitglied
//Chaotische Quelltext

Ich hoffe nicht für dich, das du so etwas machst, weil dein Chef sagt,
"Schreib mir mal ein Programm da und dafür", das wird nicht klappen(dauert schon so einiges an Zeit)

Ich stimme SlaterB zu, deshalb habe ich dir hier noch ein Link zu einem awt-Tutorial gepostet.

Für Java awt:
Short Course


Zum Programm:

-> Willst du wirklich Zeile für Zeile färben, oder wäre es besser ein Bild von der Flagge einzubauen?(Dann kannst du auch andere Flaggen machen)
-> Willst du jetzt Buttons oder Checkboxen?
 

Strongbow

Mitglied
Erstmal Danke an euch alle:)

Ich habe nun mein Fenster erstellt mit meinen gewünschten zwei Buttons und würde von euch gerne wissen, wie ich meine Flagge dort einbaue?

Zur Info, ich habe denn Code so geschrieben, dass ich zurzeit immer einen Text beim betätigen der Buttons bekomme, will aber die Flagge bzw. die Grafik angezeigt bekommen.


Quellcode:

import java.awt.*;
import java.awt.event.*;

class FlagHandler1 extends Frame {
FlagHandler1(){
setLayout(new FlowLayout());

Button bG = new Button("Germany");
bG.setActionCommand("G");
bG.addActionListener(new BHandler() );
add(bG);

Button bI = new Button("Italy");
bI.setActionCommand("I");
bI.addActionListener(new BHandler() );
add(bI);

addWindowListener(new WindowAdapter ( ){
public void windowClosing(WindowEvent e){
System.exit(0);
}
} );
setTitle ("A Flag");
setSize (300, 250);
setVisible (true);
}



class BHandler implements ActionListener{
public void actionPerformed(ActionEvent evt){
if (evt.getActionCommand() == "I"){
System.out.println("Italy");
}
else if(evt.getActionCommand() == "G"){
System.out.println("Germany");
}
}
}
public static void main (String [] args){
new FlagHandler1 ();

}
}





die Flagge:


class Flag extends Canvas {
public void paint (Graphics g){
g.setColor(Color.black);
g.fillRect(40,40,200,40);
g.setColor(Color.red);
g.fillRect(40, 80, 200, 40);
g.setColor(Color.yellow);
g.fillRect (40,120,200,40);

g.setColor(Color.black);
g.drawString("Germany",100,180);
 
G

Gast2

Gast
Sowas wie:
Java:
	class BHandler implements ActionListener  {
		public void actionPerformed(ActionEvent evt) {
			FlagHandler1.this.add(new Flag());
			FlagHandler1.this.invalidate();
			FlagHandler1.this.validate();
		}
	}
 

Strongbow

Mitglied
und wie schreibe ich den if Befehl, dass die Flagge gezeigt werden soll, wenn ich den Germany Button drücke?

und muss die Definition der Flagge unter dem

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

oder davor?
 
G

Gast2

Gast
So schreibst du die if-abfragen, aber die hast du oben doch auch schon geschrieben...:

Java:
	class BHandler implements ActionListener  {
		public void actionPerformed(ActionEvent evt) {
			if (evt.getActionCommand().equalsIgnoreCase("G"))  {
				FlagHandler1.this.add(new Flag());	
			} else if (evt.getActionCommand().equalsIgnoreCase("I")) {
				/** andere Flagge adden */
			}
			FlagHandler1.this.invalidate();
			FlagHandler1.this.validate();
		}
	}

Wo du die Klasse Flag hinlegst ist dir überlassen.
- Wie die Klasse BHandler einfach in die Klasse FlagHandler1
- In ne eigene Javadatei Flag.java
 
Zuletzt bearbeitet von einem Moderator:

Strongbow

Mitglied
Danke für die tollen Tipps!:)

ich habe nun den Java Code vervollständigt, doch die Flagge erscheint nicht!

könnt ihr mir sagen ob ich etwas falsch gemacht habe oder etwas vergessen habe?



Code:



Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler extends Frame {
	FlagHandler(){
	setLayout(new FlowLayout());
	
	Button bG = new Button("Germany");
	bG.setActionCommand("G");
	bG.addActionListener(new BHandler() );
    add(bG);
		
    Button bI = new Button("Italy");
	bI.setActionCommand("I");
	bI.addActionListener(new BHandler() );
    add(bI);

	addWindowListener(new WindowAdapter ( ){
		public void windowClosing(WindowEvent e){
			System.exit(0);
		}
	} );
	setTitle ("A Flag");
	setSize (300, 250);
	setVisible (true);
	}
	

	
	class Flag_Germany extends Canvas {
		public void paint (Graphics g){
		g.setColor(Color.black);
		g.fillRect(40,40,200,40);
		g.setColor(Color.red);
		g.fillRect(40, 80, 200, 40);
		g.setColor(Color.yellow);
		g.fillRect (40,120,200,40);

		g.setColor(Color.black);
		g.drawString("Germany",100,180); 
		   	   
		}
	}
	
	class BHandler implements ActionListener  {
        public void actionPerformed(ActionEvent evt) {
            if (evt.getActionCommand().equalsIgnoreCase("G"))  {
                FlagHandler.this.add(new Flag_Germany());  
            }/* else if (evt.getActionCommand().equalsIgnoreCase("I")) {
                 andere Flagge adden 
            }*/
            FlagHandler.this.invalidate();
            FlagHandler.this.validate();
        }
    }
	
	
    public static void main (String [] args){
    	new FlagHandler ();
    	
    }
}
 
G

Gast2

Gast
Du hast deiner Komponente keine größe mitgegeben, die wird 0x0 Pixel groß dargestellt.

So sollte das schon besser ausschaun:
Java:
	class Flag_Germany extends Canvas {
		public Flag_Germany() {
			setPreferredSize(new Dimension(300, 300));
		}
		
		public void paint(Graphics g) {
			g.setColor(Color.black);
			g.fillRect(40, 40, 200, 40);
			g.setColor(Color.red);
			g.fillRect(40, 80, 200, 40);
			g.setColor(Color.yellow);
			g.fillRect(40, 120, 200, 40);

			g.setColor(Color.black);
			g.drawString("Germany", 100, 180);

		}
	}
 

Strongbow

Mitglied
So jetzt funktioniert es schon mal halbwegs!

Jenachdem welchen Knoph ich drücke erscheint die jeweilige Flagge, doch wenn die Flagge

erscheint ist, tut sich nichts beim betätigen des anderen Buttons.

Könnt ihr mir dagen woran das liegt?


Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler extends Frame {
	FlagHandler(){
	setLayout(new FlowLayout());
	
	Button bG = new Button("Germany");
	bG.setActionCommand("G");
	bG.addActionListener(new BHandler() );
    add(bG);
		
    Button bI = new Button("Italy");
	bI.setActionCommand("I");
	bI.addActionListener(new BHandler() );
    add(bI);

	addWindowListener(new WindowAdapter ( ){
		public void windowClosing(WindowEvent e){
			System.exit(0);
		}
	} );
	setTitle ("A Flag");
	setSize (300, 250);
	setVisible (true);
	}
	

	
	class Flag_Germany extends Canvas {
        public Flag_Germany() {
            setPreferredSize(new Dimension(300, 300));
        }
        
        public void paint(Graphics G) {
            G.setColor(Color.black);
            G.fillRect(40, 40, 200, 40);
            G.setColor(Color.red);
            G.fillRect(40, 80, 200, 40);
            G.setColor(Color.yellow);
            G.fillRect(40, 120, 200, 40);
 
            G.setColor(Color.black);
            G.drawString("Germany", 100, 180);
 
        }
    }
	class Flag_Italy extends Canvas {
        public  Flag_Italy() {
            setPreferredSize(new Dimension(300, 300));
        }
	public void paint(Graphics I) {
        I.setColor(Color.green);
        I.fillRect(60, 40, 40, 100);
        I.setColor(Color.white);
        I.fillRect(100, 40, 40, 100);
        I.setColor(Color.red);
        I.fillRect(140, 40, 40, 100);

        I.setColor(Color.black);
        I.drawString("Italy", 100, 180);

    }
}
	class BHandler implements ActionListener  {
        public void actionPerformed(ActionEvent evt) {
            if (evt.getActionCommand().equalsIgnoreCase("G"))  {
                FlagHandler.this.add(new Flag_Germany());  
            } else if (evt.getActionCommand().equalsIgnoreCase("I")) {
            	 FlagHandler.this.add(new  Flag_Italy());  
            }
            FlagHandler.this.invalidate();
            FlagHandler.this.validate();
        }
	}
	
	
    public static void main (String [] args){
    	new FlagHandler ();
    	
    }
}
 
G

Gast2

Gast
Indem du dir einen Container nimmst, da dann die Flagge zuerst rauslöschst und die neue einfügst. Diesen Container kannst du dann auf deinen Frame adden.
 

Strongbow

Mitglied
Hi , ich habe jetzt ein remove eingebaut, doch ich glaube ich muss anstatt
Java:
FlagHandler1.this.remove(new Flag_Germany());
etwas anderes schreiben oder?

Ich glaube anstatt new Flag_Germany könnte ich docg FG einsetzen, wenn ich es == Flag_Germany setze ?

wie definiere, bzw setze ich dies gleich?




Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler1 extends Frame {
	FlagHandler1(){
	setLayout(new FlowLayout());
	
	Button bG = new Button("Germany");
	bG.setActionCommand("G");
	bG.addActionListener(new BHandler() );
    add(bG);
		
    Button bI = new Button("Italy");
	bI.setActionCommand("I");
	bI.addActionListener(new BHandler() );
    add(bI);

	addWindowListener(new WindowAdapter ( ){
		public void windowClosing(WindowEvent e){
			System.exit(0);
		}
	} );
	setTitle ("A Flag");
	setSize (300, 250);
	setVisible (true);
	}
	

	
	class Flag_Germany extends Canvas {
       
	
	
		public Flag_Germany() {
            setPreferredSize(new Dimension(300, 300));
        }
        
	
     
     
        public void paint(Graphics G) {
            G.setColor(Color.black);
            G.fillRect(40, 40, 200, 40);
            G.setColor(Color.red);
            G.fillRect(40, 80, 200, 40);
            G.setColor(Color.yellow);
            G.fillRect(40, 120, 200, 40);
 
            G.setColor(Color.black);
            G.drawString("Germany", 100, 180);
            
        }
    }
	class Flag_Italy extends Canvas {
        public  Flag_Italy() {
            setPreferredSize(new Dimension(300, 300));
        }
	public void paint(Graphics I) {
        I.setColor(Color.green);
        I.fillRect(60, 40, 40, 100);
        I.setColor(Color.white);
        I.fillRect(100, 40, 40, 100);
        I.setColor(Color.red);
        I.fillRect(140, 40, 40, 100);

        I.setColor(Color.black);
        I.drawString("Italy", 100, 180);
        
    }
}
	class BHandler implements ActionListener  {
        public void actionPerformed(ActionEvent evt) {
            if (evt.getActionCommand().equalsIgnoreCase("G"))  {
                FlagHandler1.this.add(new Flag_Germany());  
                FlagHandler1.this.remove(new Flag_Italy()); 
                
            } else if (evt.getActionCommand().equalsIgnoreCase("I")) {
           	 FlagHandler1.this.add(new  Flag_Italy());  
        	 FlagHandler1.this.remove(new Flag_Germany());
        	
        	 
            }
            
            FlagHandler1.this.invalidate();
            FlagHandler1.this.validate();
           
        }
	}
 
G

Gast2

Gast
Wenn du deine Flagge auf in einen Container legst dann brauchst du dich drum kümmern eine Referenz auf die Flagge zu haben um die zu löschen, Bespiel:

Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler1 extends Frame {
	
	private Panel container = new Panel();
	
	public FlagHandler1() {
		setLayout(new FlowLayout());

		Button bG = new Button("Germany");
		bG.setActionCommand("G");
		bG.addActionListener(new BHandler());
		add(bG);

		Button bI = new Button("Italy");
		bI.setActionCommand("I");
		bI.addActionListener(new BHandler());
		add(bI);

		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		add(container);
		
		setTitle("A Flag");
		setSize(300, 250);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new FlagHandler1();
	}

	class Flag_Germany extends Canvas {

		public Flag_Germany() {
			setPreferredSize(new Dimension(300, 300));
		}

		public void paint(Graphics g) {
			g.setColor(Color.black);
			g.fillRect(40, 40, 200, 40);
			g.setColor(Color.red);
			g.fillRect(40, 80, 200, 40);
			g.setColor(Color.yellow);
			g.fillRect(40, 120, 200, 40);

			g.setColor(Color.black);
			g.drawString("Germany", 100, 180);

		}
	}

	class Flag_Italy extends Canvas {
		public Flag_Italy() {
			setPreferredSize(new Dimension(300, 300));
		}

		public void paint(Graphics g) {
			g.setColor(Color.green);
			g.fillRect(60, 40, 40, 100);
			g.setColor(Color.white);
			g.fillRect(100, 40, 40, 100);
			g.setColor(Color.red);
			g.fillRect(140, 40, 40, 100);

			g.setColor(Color.black);
			g.drawString("Italy", 100, 180);

		}
	}

	class BHandler implements ActionListener {
		public void actionPerformed(ActionEvent evt) {
			/* clear container */
			container.removeAll();
			
			/* add flag */
			if (evt.getActionCommand().equalsIgnoreCase("G")) {
				container.add(new Flag_Germany());
			} else if (evt.getActionCommand().equalsIgnoreCase("I")) {
				container.add(new Flag_Italy());
			}

			/* revalidate container */
			FlagHandler1.this.invalidate();
			FlagHandler1.this.validate();

		}
	}
}
 

André Uhres

Top Contributor
Weil's so schön ist, hier auch noch die Checkbox Variante:
Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler1 extends Frame {

    private Panel container = new Panel();
    private final Checkbox bG, bI;

    public FlagHandler1() {
        Panel controls = new Panel();
        CheckboxGroup checkboxGroup = new CheckboxGroup();
        bG = new Checkbox("Germany", false, checkboxGroup);
        bG.addItemListener(new BHandler());
        controls.add(bG);
        bI = new Checkbox("Italy", false, checkboxGroup);
        bI.addItemListener(new BHandler());
        controls.add(bI);
        add(controls, BorderLayout.NORTH);
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        add(container, BorderLayout.CENTER);
        setTitle("A Flag");
        setSize(300, 260);
        setVisible(true);
    }

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

    class Flag extends Canvas {

        int flag;

        private Flag(final int flag) {
            setPreferredSize(new Dimension(300, 300));
            this.flag = flag;
        }

        @Override
        public void paint(final Graphics g) {
            switch (flag) {
                case 0:
                    g.setColor(Color.black);
                    g.fillRect(40, 40, 200, 40);
                    g.setColor(Color.red);
                    g.fillRect(40, 80, 200, 40);
                    g.setColor(Color.yellow);
                    g.fillRect(40, 120, 200, 40);
                    break;
                case 1:
                    g.setColor(Color.green);
                    g.fillRect(60, 40, 40, 100);
                    g.setColor(Color.white);
                    g.fillRect(100, 40, 40, 100);
                    g.setColor(Color.red);
                    g.fillRect(140, 40, 40, 100);
                    break;
            }
        }
    }

    class BHandler implements ItemListener {

        @Override
        public void itemStateChanged(final ItemEvent evt) {
            /* clear container */
            container.removeAll();
            /* add flag */
            if (bG.getState()) {
                container.add(new Flag(0));
            }
            if (bI.getState()) {
                container.add(new Flag(1));
            }
            /* revalidate container */
            container.invalidate();
            container.validate();
        }
    }
}
 

Strongbow

Mitglied
Hi Leute ich hab das ganze nochmal umgeschrieben!

Jetzt erscheinen 3 Buttons und die ersten beiden lassen jeweils eine flagge erscheinen.


Nun möchte ich mit den 3 Button eine England Flagge laden lassen(gif format)

könnt ihr mir sagen wie ich das schreiben bzw. einfügen muss?


Bild(Flagge): Name england.gif
Ordnerpfad C:\Users\Administrator\Desktop\Programmieren\Programmieren






Java:
import java.awt.*;
import java.awt.event.*;

class FlagHandler2 extends Frame {
	
	private Canvas myIC;
	
	FlagHandler2(){
	
		myIC = new Canvas();
		myIC.setPreferredSize(new Dimension(300, 300));
		add(myIC);
		
		GridBagLayout gbl = new GridBagLayout();
		  this.setLayout(gbl);

	    GridBagConstraints c = new GridBagConstraints();

	    c.fill = GridBagConstraints.BOTH;   // wie Komponente Bereich füllen soll
	    c.weightx = 30;                     // Breite
	    c.weighty = 30;                    // Höhe
	    c.insets = new Insets(0,5,10,15);   
		
		Button bG = new Button("Germany");
		bG.setActionCommand("G");
		bG.addActionListener(new BHandler() );
	    add(bG);
			
	    Button bI = new Button("Italy");
		bI.setActionCommand("I");
		bI.addActionListener(new BHandler() );
	    add(bI);
	    
	    Button bE = new Button("England");
		bE.setActionCommand("E");
		bE.addActionListener(new BHandler() );
	    add(bE);
	
	    c.gridx = 0;                        // x-Position
	    c.gridy = -1;                        // y-Position
	    c.gridwidth = 1;                    // Breite
	    c.gridheight = 1;                   // Höhe
	    gbl.setConstraints(bG, c);          // zum GridBagConstraints hinzufügen
	  
	  		
	    c.gridx = 0;
	    c.gridy = -3;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bI, c);
	    

	    c.gridx = 0;
	    c.gridy = -6;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bE, c);
	   


	    
		addWindowListener(new WindowAdapter ( ){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		} );
		setTitle ("A Flag");
		setSize (350, 500);
		setVisible (true);
	}

	

	private void paintGermanyFlag() {
		Graphics myFG = myIC.getGraphics();
		myFG.setColor(Color.black);
		myFG.fillRect(40, 40, 200, 40);
		myFG.setColor(Color.red);
		myFG.fillRect(40, 80, 200, 40);
		myFG.setColor(Color.yellow);
		myFG.fillRect(40, 120, 200, 40);

		
	
	}
	
	private void paintItalyFlag(){
		Graphics myIG = myIC.getGraphics();
		myIG.setColor(Color.green);
		myIG.fillRect(40, 40, 69, 120);
		myIG.setColor(Color.white);
		myIG.fillRect(108, 40, 72, 120);
		myIG.setColor(Color.red);
		myIG.fillRect(172, 40, 68, 120);

		
		
	}

	class BHandler implements ActionListener  {
        public void actionPerformed(ActionEvent evt) {
            if (evt.getActionCommand().equalsIgnoreCase("G"))  {
                 
            	paintGermanyFlag();  
                                
            } else if (evt.getActionCommand().equalsIgnoreCase("I")) {
                 
                paintItalyFlag();  

            }
            
            FlagHandler2.this.invalidate();
            FlagHandler2.this.validate();           
        }
	}
	
	
    public static void main (String [] args){
    	new FlagHandler2 ();   	
    	
    }
}
 
G

Gast2

Gast
Bilder laden kannst du mit ImageIO. Das kannst du dann hinzeichnen lassen wo du willst.
BTW: Man sollte (idR) NIE getGraphics() aufrufen, das führt zu ner menge unerklärlicher bugs.
 
Zuletzt bearbeitet von einem Moderator:

André Uhres

Top Contributor
Angenommen, das Bild liegt beim Quellcode im Ordner pics, dann kannst du es mit einem relativen Pfad auf folgende Weise laden:
Java:
class BHandler ...
    private JLabel flagUK = new JLabel(new ImageIcon(getClass().getResource("/pics/england.gif")));
...
            container.add(flagUK);
...

Gruß,
André
 

André Uhres

Top Contributor
Das hängt vom Programm ab. Bei meinem obigen Beispiel können wir es so machen:

Java:
    class BHandler implements ItemListener {

        private Flag flagG = new Flag(0);
        private Flag flagI = new Flag(1);
        private JLabel flagUK = new JLabel(new ImageIcon(getClass().getResource("/pics/england.gif")));

        @Override
        public void itemStateChanged(final ItemEvent evt) {
            /* clear container */
            container.removeAll();
            /* add flag */
            if (bG.getState()) {
                container.add(flagG);
            }
            if (bI.getState()) {
                container.add(flagI);
            }
            if (bUK.getState()) {
                container.add(flagUK);
            }
            /* revalidate container */
            container.invalidate();
            container.validate();
        }
    }
Anstatt "JLabel" können wir auch ein "Flag" verwenden: [c]private Flag flagUK = new Flag(2);[/c]. Flag könnte dann etwa so aussehen:
Java:
    class Flag extends Canvas {
...
        private Image flagUK = new ImageIcon(getClass().getResource("/pics/england.gif")).getImage();
...
                case 2:
                    g.drawImage(flagUK, 40, 40, this);
                    break;
...
Wir können auch noch auf das "Panel container" verzichten und Flag direkt zum Fenster hinzufügen:
Java:
.
public class FlagHandler1 extends Frame {
    private Flag flag = new Flag(-1);
...
        add(flag, BorderLayout.CENTER);//hier kommt "flag" statt "container"
...
    class Flag extends Canvas {
...
        public void setFlag(int flag) {//neue Methode, um die gewünschte Flagge zu zeichnen
            this.flag = flag;
            repaint();
        }
    }
    class BHandler implements ItemListener {

        @Override
        public void itemStateChanged(final ItemEvent evt) {
//der Event Handler ist dann viel einfacher:
            if (bG.getState()) {
                flag.setFlag(0);
            }
            if (bI.getState()) {
                flag.setFlag(1);
            }
            if (bUK.getState()) {
                flag.setFlag(2);
            }
        }
    }
}
Dein "FlagHandler2" ist ein schlechtes Beispiel wegen des Gebrauchs der Methode "getGraphics": wenn das Fenster z.B. von einem anderen Fenster zeitweilig verdeckt wird, wird die Flagge, nachdem sie wieder aufgedeckt wurde, nicht mehr neu gezeichnet (du hast dann wieder ein leeres Fenster, wo lediglich die Buttons gezeichnet sind). Das liegt daran, dass das System davon ausgeht, dass alles, was gezeichnet werden muss, in der überschriebenen Methode "paint" steht. In dem Fall kann das System das beschädigte Fenster leicht reparieren.

Gruß,
André
 
Zuletzt bearbeitet:

Strongbow

Mitglied
Hi André,

Danke für deine Antwort. :)

Du hast sicherlich recht, dass deine Anwendung sinnvoller ist, doch ist es für mich einfacher das angewendete anhand meines Codes zu vertsehen.

Mein Programm funktioniert soweit, doch die Flaggen, die geladen werden, erscheinen nicht in der richtigen größe!

kann man die Bilder verkleinert also gezerrt darstellen?

und wie würde ich das zusätzöich zu mienen Code ergänzen müssen?



Java:
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;  
import java.util.*;  

class ImageHandler extends Frame {
	
	private Canvas myIC;
	private String filename;
	
	ImageHandler(){
	
		myIC = new Canvas();
		myIC.setPreferredSize(new Dimension(300, 300));
		add(myIC);
		
		GridBagLayout gbl = new GridBagLayout();
		  this.setLayout(gbl);

	    GridBagConstraints c = new GridBagConstraints();

	    c.fill = GridBagConstraints.BOTH;   // wie Komponente Bereich füllen soll
	    c.weightx = 10;                     // Breite
	    c.weighty = 10;                    // Höhe
	    c.insets = new Insets(0,5,10,15);   
		
		Button bG = new Button("Germany");
		bG.setActionCommand("G");
		bG.addActionListener(new BHandler() );
	    add(bG);
			
	    Button bI = new Button("Italy");
		bI.setActionCommand("I");
		bI.addActionListener(new BHandler() );
	    add(bI);
	    
	    Button bE = new Button("England");
		bE.setActionCommand("E");
		bE.addActionListener(new BHandler() );
	    add(bE);
	
	    c.gridx = 0;                        // x-Position
	    c.gridy = -1;                        // y-Position
	    c.gridwidth = 1;                    // Breite
	    c.gridheight = 1;                   // Höhe
	    gbl.setConstraints(bG, c);          // zum GridBagConstraints hinzufgen
	  
	  		
	    c.gridx = 0;
	    c.gridy = -3;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bI, c);
	    

	    c.gridx = 0;
	    c.gridy = -6;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bE, c);
	   


	    
		addWindowListener(new WindowAdapter ( ){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		} );
		
		
		setTitle ("A Flag");
		setSize (350, 500);
		setVisible (true);
	}

	
public void drawFlag(String aFilename){
	
		Image FlaggenBild = null ;
		filename = aFilename;
		
		URL url = null;
		Graphics myFG = myIC.getGraphics();
		
			try{
				
				url = new URL("File:///"  + System.getProperty("user.home") + aFilename);
				System.out.println("after url" );
				System.out.println(url.getFile() );
				FlaggenBild = getToolkit().getImage(url);
				setIconImage(FlaggenBild);
			}catch (Exception e){
				e.printStackTrace();
				
			}
			if (url != null && FlaggenBild != null){
			System.out.println(url.getFile() );
			Insets insets = getInsets();
			int x = insets.left;
			int y = insets.top;
			int w = FlaggenBild.getWidth(this);
		int h = FlaggenBild.getHeight(this);
			
			myFG.drawImage(FlaggenBild, x, y, this);
			}
}
		
	
class BHandler implements ActionListener  {
    public void actionPerformed(ActionEvent evt) {
        if (evt.getActionCommand().equalsIgnoreCase("G"))  {
             
        	drawFlag("/germany.gif");  
        	
        } else if (evt.getActionCommand().equalsIgnoreCase("E")) {
             
           	drawFlag("/england.gif");  
 
        }
        
        else if (evt.getActionCommand().equalsIgnoreCase("I")) {
        	
           	drawFlag("/italy.gif");  
       	
  
        }
        ImageHandler.this.invalidate();
        ImageHandler.this.validate();           
    }
}
	
	
    public static void main (String [] args){
    	new ImageHandler ();   	
    	
    }
}
 

Strongbow

Mitglied
Mein letzter Beitrag hat sich erledigt, hab das mit der größe hinbekommen!

ich wollte euch jetzt fragen, da mein Programm funktioniert, ob man es nicht schöner bzw. optimieren könnte?


Java:
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;  
import java.util.*;  

class ImageHandler extends Frame {
	
	private Canvas myIC;
	private String filename = "/germany.gif";
	private String command = "G";
	
	
	ImageHandler(){
	
		myIC = new Canvas();
		myIC.setPreferredSize(new Dimension(295, 300));
		add(myIC);
		
		GridBagLayout gbl = new GridBagLayout();
		  this.setLayout(gbl);

	    GridBagConstraints c = new GridBagConstraints();

	    c.fill = GridBagConstraints.BOTH;   // wie Komponente Bereich füllen soll
	    c.weightx = 10;                     // Breite
	    c.weighty = 10;                    // Höhe
	    c.insets = new Insets(0,5,10,15);   
		
		Button bG = new Button("Germany");
		bG.setActionCommand("G");
		bG.addActionListener(new BHandler() );
	    add(bG);
			
	    Button bI = new Button("Italy");
		bI.setActionCommand("I");
		bI.addActionListener(new BHandler() );
	    add(bI);
	    
	    Button bE = new Button("England");
		bE.setActionCommand("E");
		bE.addActionListener(new BHandler() );
	    add(bE);
	
	    c.gridx = 0;                        // x-Position
	    c.gridy = -1;                        // y-Position
	    c.gridwidth = 1;                    // Breite
	    c.gridheight = 1;                   // Höhe
	    gbl.setConstraints(bG, c);          // zum GridBagConstraints hinzufgen
	  
	  		
	    c.gridx = 0;
	    c.gridy = -3;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bI, c);
	    

	    c.gridx = 0;
	    c.gridy = -6;
	    c.gridwidth = 1;
	    c.gridheight = 1;
	    gbl.setConstraints(bE, c);
	   


	    
		addWindowListener(new WindowAdapter ( ){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		} );
		
		
		setTitle ("A Flag");
		setSize (360, 500);
		setVisible (true);
		setBackground(Color.gray);
	}

public void paint(Graphics g){
	super.paint(g);
	drawFlag();
}

public void drawFlag(){
	
		Image FlaggenBild = null ;
		
		URL url = null;
		Graphics myFG = myIC.getGraphics();
		
			try{
				
				url = new URL("File:///"  + System.getProperty("user.home") + filename);
				FlaggenBild = getToolkit().getImage(url);
				setIconImage(FlaggenBild);
			}catch (Exception e){
				e.printStackTrace();
				
			}
			if (url != null && FlaggenBild != null){
			Insets insets = getInsets();
			int x = insets.left;
			int y = insets.top;
			int w = FlaggenBild.getWidth(this);
		int h = FlaggenBild.getHeight(this);
			
			myFG.drawImage(FlaggenBild, x, y, this);
			}
}
		
	
class BHandler implements ActionListener  {
    public void actionPerformed(ActionEvent evt) {
    	 Toolkit.getDefaultToolkit().beep();
    	 command = evt.getActionCommand();
        if (command.equalsIgnoreCase("G"))  {
             filename = "/germany.gif";
       	drawFlag();  
        	
        } else if (command.equalsIgnoreCase("E")) {
             
            filename = "/england.gif";
          	drawFlag();  
 
        }
        
        else if (command.equalsIgnoreCase("I")) {
        	
            filename = "/italy.gif";
          	drawFlag();  
       	
  
        }
        ImageHandler.this.invalidate();
        ImageHandler.this.validate(); 
        
    }
}
	
	
    public static void main (String [] args){
    	new ImageHandler ();   	
    	
    }
}
 
G

Gast2

Gast
Hab mir jetzt nicht alles angeschaut, aber du solltest auf jedenfall die getGraphics aufrufe entfernen. Gib der drawFlag Methode doch einfach das Graphics objekt mit dass dir in der paint Methode zur verfügung steht.
 

André Uhres

Top Contributor
ich wollte euch jetzt fragen, da mein Programm funktioniert, ob man es nicht schöner bzw. optimieren könnte?

Versuch's mal so:

Java:
import java.awt.*;
import java.awt.event.*;
import static java.awt.GridBagConstraints.*;
import java.net.*;
import java.util.logging.*;

public class ImageHandler {

    private final Frame window;
    private final Canvas myIC;
    private final Button bG, bI, bE;
    private Image flaggenBild;

    public ImageHandler() {
        window = new Frame("A Flag");
        myIC = new ImageCanvas();
        bG = new Button("Germany");
        bI = new Button("Italy");
        bE = new Button("England");

        BHandler bHandler = new BHandler();
        bG.setActionCommand("G");
        bG.addActionListener(bHandler);
        bI.setActionCommand("I");
        bI.addActionListener(bHandler);
        bE.setActionCommand("E");
        bE.addActionListener(bHandler);

        window.setLayout(new GridBagLayout());

        GridBagConstraints c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(10, 20, 10, 20);
        c.gridx = 1;
        c.gridy = 1;
        window.add(myIC, c);

        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 2;
        window.add(bG, c);

        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 3;
        window.add(bI, c);

        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 4;
        window.add(bE, c);

        window.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(final WindowEvent e) {
                System.exit(0);
            }
        });
        window.pack();
        window.setLocationRelativeTo(null);
        window.setBackground(Color.gray);
        window.setVisible(true);
    }

    public void loadImage(final String filename) {
        try {
            URL url = new URL("File:///" + System.getProperty("user.home") + filename);
            flaggenBild = window.getToolkit().getImage(url);
            window.setIconImage(flaggenBild);
            myIC.repaint();
        } catch (final MalformedURLException ex) {
            Logger.getLogger(ImageHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private class BHandler implements ActionListener {

        public void actionPerformed(final ActionEvent evt) {
            Toolkit.getDefaultToolkit().beep();
            String command = evt.getActionCommand();
            if (command.equalsIgnoreCase("G")) {
                loadImage("/germany.gif");
            } else if (command.equalsIgnoreCase("E")) {
                loadImage("/england.gif");
            } else if (command.equalsIgnoreCase("I")) {
                loadImage("/italy.gif");
            }
        }
    }

    private class ImageCanvas extends Canvas {

        ImageCanvas() {
            setPreferredSize(new Dimension(295, 300));
        }

        @Override
        public void paint(final Graphics g) {
            super.paint(g);
            if (flaggenBild != null) {
                Insets insets = window.getInsets();
                int x = insets.left;
                int y = insets.top;
                g.drawImage(flaggenBild, x, y, this);
            }
        }
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                ImageHandler imageHandler = new ImageHandler();
                imageHandler.loadImage("/germany.gif");
            }
        };
        //GUI must start on EventQueue:
        EventQueue.invokeLater(gui);
    }
}

Siehe auch:
GridBagLayout - Byte-Welt Wiki
Malen in AWT und Swing - Byte-Welt Wiki

Gruß,
André
 

Strongbow

Mitglied
Danke für diesen tollen Beitrag!

Es sieht aufjedenfall besser aus:) .

Hat sich jetzt auch etwas von der Funktion verändert oder ist es nur übersichtlicher gewurden(sorry für meine Unkenntnis!)?

Wenn ja was läuft jetzt anders ab ?

Wenn nicht, könnte man das Programm dann noch Ressourcen freundlicher schreiben, so dass wenn man einen ganz langsamen Computer hätte es auch läuft bzw. schneller?

Danke:)
 

Strongbow

Mitglied
Hi Leute ich habe jetzt versucht meinen Buttons in Checkboxen bzw. RadioButtons zu ändern, doch wenn ich einen anderen Knopf drücke bleibt der vorrige gedrückt!

was ist bei meinen Code falsch?

Java:
import java.awt.*;
import java.awt.event.*;

import static java.awt.GridBagConstraints.*;
import java.net.*;
import java.util.logging.*;

import javax.swing.JRadioButton;
 
public class ImageHandler4 {
 
    private final Frame window;
    private final Canvas myIC;
    private final  JRadioButton bG, bI, bE;
    private Image flaggenBild;
 
    public ImageHandler4 () {
       
        window = new Frame("A Flag");
        myIC = new ImageCanvas();
        bG = new  JRadioButton("Germany");
        bI = new  JRadioButton("Italy");
        bE = new  JRadioButton("England");
        
        BHandler bHandler = new BHandler();
       
        bG.setActionCommand("G");
        bG.addActionListener(bHandler);
        bI.setActionCommand("I");
        bI.addActionListener(bHandler);
        bE.setActionCommand("E");
        bE.addActionListener(bHandler);
 
        window.setLayout(new GridBagLayout());
 
        GridBagConstraints c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(10, 20, 10, 20);
        c.gridx = 1;
        c.gridy = 1;
        window.add(myIC, c);
 
        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 2;
        window.add(bG, c);
 
        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 3;
        window.add(bI, c);
 
        c = new GridBagConstraints();
        c.fill = BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx = 1;
        c.gridy = 4;
        window.add(bE, c);
 
        window.addWindowListener(new WindowAdapter() {
 
            @Override
            public void windowClosing(final WindowEvent e) {
                System.exit(0);
            }
        });
        window.pack();
        window.setLocationRelativeTo(null);
        window.setBackground(Color.gray);
        window.setVisible(true);
       
    }
 
    public void loadImage(final String filename) {
        try {
            URL url = new URL("File:///" + System.getProperty("user.home") + filename);
            flaggenBild = window.getToolkit().getImage(url);
            window.setIconImage(flaggenBild);
            myIC.repaint();
        } catch (final MalformedURLException ex) {
            Logger.getLogger(ImageHandler.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    private class BHandler implements ActionListener {
 
        public void actionPerformed(final ActionEvent evt) {
            Toolkit.getDefaultToolkit().beep();
            String command = evt.getActionCommand();
            if (command.equalsIgnoreCase("G")) {
                loadImage("/germany.gif");
            } else if (command.equalsIgnoreCase("E")) {
                loadImage("/england.gif");
            } else if (command.equalsIgnoreCase("I")) {
                loadImage("/italy.gif");
            }
        }
    }
 
    private class ImageCanvas extends Canvas {
 
        ImageCanvas() {
            setPreferredSize(new Dimension(248, 300));
            
        }
 
        @Override
        public void paint(final Graphics g) {
            super.paint(g);
            if (flaggenBild != null) {
                Insets insets = window.getInsets();
                int x = insets.left;
                int y = insets.top;
                g.drawImage(flaggenBild, x, y, this);
            }
        }
    }
 
    public static void main(final String[] args) {
        Runnable gui = new Runnable() {
 
            public void run() {
                ImageHandler4 imageHandler4 = new ImageHandler4();
                imageHandler4.loadImage("/germany.gif");
            }
        };
       
        EventQueue.invokeLater(gui);
    }
}
 

André Uhres

Top Contributor
Es hat sich jetzt auch etwas von der Funktion verändert, wegen des korrekten Gebrauchs der "paint" Methode: die Flagge wird jetzt vom System optimaler repariert(*), falls sie beschädigt wurde (zum Beispiel wenn etwas verschoben wurde, das vorher die Komponente verdeckte, und ein vorher verdeckter Teil der Komponente sichtbar wird).

Man könnte eventuell die Buttonklicks für einen langsamen Computer geringfügig schneller machen, indem man die drei Bilder nur einmal am Anfang lädt, statt mit jedem Buttonklick das jeweils benötigte Bild neu zu laden. Ich hatte beim Code schreiben zuerst daran gedacht, es so zu machen. Aber dann hielt ich den zusätzlichen Schreibaufwand in diesem Fall nicht für angemessen.

Die "JRadioButton" Objekte werden zusammen mit einem "ButtonGroup" Objekt benutzt, wodurch sie zu einer Gruppe von Schaltflächen werden, in denen nur ein Button zu einem Zeitpunkt ausgewählt werden kann. Erstelle ein "ButtonGroup" Objekt und benutze seine add Methode, um die JRadioButton Objekte in die Gruppe aufzunehmen. Das steht übrigens in der Javadoc: einfach nur lesen -->JRadioButton !! Nach etwas im Netz zu suchen, kann auch helfen!

Gruß,
André

(*) Mit deiner Version wird die Flagge nur teilweise oder gar nicht repariert:
 

Anhänge

  • flag1.jpg
    flag1.jpg
    7,5 KB · Aufrufe: 23
  • flag2.jpg
    flag2.jpg
    5,4 KB · Aufrufe: 25
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M eigene GUI Bibliothek erstellen. AWT, Swing, JavaFX & SWT 10
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
T src ordner erstellen AWT, Swing, JavaFX & SWT 6
M Javafx versuch Bibliothek zu erstellen AWT, Swing, JavaFX & SWT 0
melaniemueller Confirmation Dialog erstellen AWT, Swing, JavaFX & SWT 18
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
E Putzplan erstellen AWT, Swing, JavaFX & SWT 15
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
W Clear Canvas und anschließendes neues Erstellen von Objekten auf Canvas aus ArrayList AWT, Swing, JavaFX & SWT 4
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
D runnable Jar mit Javafx erstellen(Eclipse) AWT, Swing, JavaFX & SWT 10
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L JavaFX PropertyView mit dynamischer EditCell erstellen? AWT, Swing, JavaFX & SWT 8
C Falschfarbenbild (lineare Grauwertspreizung)aus Grauwert-Bild erstellen AWT, Swing, JavaFX & SWT 15
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
Z Random Butten erstellen ohne Container AWT, Swing, JavaFX & SWT 15
F Verzeichnis über GUI erstellen AWT, Swing, JavaFX & SWT 2
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
S Labels in Panel erstellen AWT, Swing, JavaFX & SWT 1
B JavaFX RadioButtons erstellen AWT, Swing, JavaFX & SWT 7
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
O Basics - Anwendung erstellen mit mehreren Szenen AWT, Swing, JavaFX & SWT 1
dereki2000 LookAndFeel Individuelles LAF erstellen AWT, Swing, JavaFX & SWT 9
C SWT Breadcrumb Zeile mit entsprechenden Hyperlinks erstellen AWT, Swing, JavaFX & SWT 0
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
L Chat erstellen AWT, Swing, JavaFX & SWT 13
N "Automatisches" erstellen von jButtons AWT, Swing, JavaFX & SWT 1
K Aus 2 Arrays xy - Graph erstellen AWT, Swing, JavaFX & SWT 9
K Swing outerPanel und innerPanel erstellen AWT, Swing, JavaFX & SWT 4
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
P JList erstellen AWT, Swing, JavaFX & SWT 4
H Musik wird nach dem erstellen der .jar Datei nicht mehr abgespielt AWT, Swing, JavaFX & SWT 1
J Statistik erstellen AWT, Swing, JavaFX & SWT 3
H GUI erstellen um JUnit Tests auszuführen AWT, Swing, JavaFX & SWT 29
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
Prafy Sich ändernde Farbverläufe erstellen AWT, Swing, JavaFX & SWT 4
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
M JavaFX GUI-Elemente erstellen, nachdem die GUI geladen hat AWT, Swing, JavaFX & SWT 4
U dynamisches JTree erstellen AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
J JavaFX JavaFX exe erstellen AWT, Swing, JavaFX & SWT 5
E JavaFX JavaFX - MenuItem erstellen aus dem Inhalt einer HashMap AWT, Swing, JavaFX & SWT 1
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
G Anonyme Instanz von JXImageView erstellen und mit Bild initialisieren AWT, Swing, JavaFX & SWT 7
M "(Buch-)Seiten" erstellen AWT, Swing, JavaFX & SWT 2
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
F JButtons erstellen lassen mit unterschiedlichen Funktionen AWT, Swing, JavaFX & SWT 3
T JPanel dynamisch erstellen AWT, Swing, JavaFX & SWT 4
J Logikfehler im erstellen eines GUI AWT, Swing, JavaFX & SWT 3
A Swing Frames richtig erstellen AWT, Swing, JavaFX & SWT 3
T Wizard mit NEXT Button erstellen AWT, Swing, JavaFX & SWT 11
D gerichteten Graph erstellen AWT, Swing, JavaFX & SWT 2
D Swing Ansichtstranformationsmatrix erstellen AWT, Swing, JavaFX & SWT 0
M JavaFX MSI oder EXE aus JavaFX Projekt erstellen? AWT, Swing, JavaFX & SWT 2
R Kästchen mit Zufallsfarben erstellen AWT, Swing, JavaFX & SWT 2
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
A Fenster erstellen AWT, Swing, JavaFX & SWT 2
G Label erstellen AWT, Swing, JavaFX & SWT 6
G Blöcke erstellen AWT, Swing, JavaFX & SWT 4
K Swing Terminplaner erstellen AWT, Swing, JavaFX & SWT 7
G JavaFX Neues Fenster erstellen AWT, Swing, JavaFX & SWT 3
M Wie kann ich eine an Apple Automator angelehnte GUI erstellen? AWT, Swing, JavaFX & SWT 1
T An/aus Button erstellen AWT, Swing, JavaFX & SWT 5
A Swing Transparenten JPanel erstellen AWT, Swing, JavaFX & SWT 5
D Jahreskalender erstellen AWT, Swing, JavaFX & SWT 2
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
W JTable erstellen und Spalten sortieren AWT, Swing, JavaFX & SWT 2
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
K Swing SwingGUI - Erstellen für Anfänger AWT, Swing, JavaFX & SWT 15
B Eigenen Look&Feel erstellen?! AWT, Swing, JavaFX & SWT 2
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
R SWT Eigene Events erstellen und werfen AWT, Swing, JavaFX & SWT 59
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
B 2D-Grafik Dynamisches Erstellen von Images und deren Animation AWT, Swing, JavaFX & SWT 4
C Border in JPanel erstellen AWT, Swing, JavaFX & SWT 4
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
B Swing invokeLater nötig beim GUI erstellen? AWT, Swing, JavaFX & SWT 10
V Swing Wochenplaner in Swing erstellen! Aber wie? AWT, Swing, JavaFX & SWT 13
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
P Neue Datei erstellen in JPanel AWT, Swing, JavaFX & SWT 5
V Guis erstellen mit FXML und javaFX gemischt AWT, Swing, JavaFX & SWT 5
B Swing JMenuButtons mit Funktionen aus Array erstellen AWT, Swing, JavaFX & SWT 4
B Bild direkt im Quelltext erstellen AWT, Swing, JavaFX & SWT 14
B Applet Aus Applet signiertes jar mit externen libs erstellen AWT, Swing, JavaFX & SWT 9
I Swing GUI "ordentlich" mit Guice erstellen AWT, Swing, JavaFX & SWT 2
B Java scatterplot mit Sticks effizient erstellen! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben