JButton neu zeichnen lassen

JavaNoobiee

Mitglied
Also ich habe folgendes Problem:
Ich habe ein ganz normales JFrame und ein JPanel und einen JButton. Nun möchte ich
das, wenn ich auf den Button drücke, die Bounds des Buttons neu gesetzt werden, also das der Button bei jedem drücken die Position im Fenster ändert. Komme auf keine Lösung hier mein Code:

Java:
package timer;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.Timer;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;





public class  Gui extends JFrame
{
	JButton b1 = new JButton("blue");
	Timer t = new Timer();
	public Gui() 
	{
	 initComponents();
	}
	private void initComponents() {
		setLayout(null);
		setSize(400, 300);
		setTitle("Noobs Everywhere");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
		JPanel p1 = new JPanel();
		p1.setLayout(null);
		p1.setBounds(150,100,110,110);
		p1.setBackground(Color.red);
		
		JButton b1 = new JButton("killed");
		b1.setForeground(Color.red);
		b1.setBackground(Color.cyan);
		b1.setBounds(200, 105, 100, 100);
		
		
		p1.add(b1);
		add(b1);
		add(p1);
		b1.addActionListener(new TestActionListener());
		}
	
	
		 
		
	

	class TestActionListener implements ActionListener
	    {
	        public void actionPerformed(ActionEvent e) 
	        {
	        b1.setBounds(100, 100, 100, 100);
	        }           
	    }

}
 

knilch

Bekanntes Mitglied
Hi,
Hier mal ein Beispiel:
Java:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Gui {
	private JFrame frame;
	private int xCounter = 0;
	private int yCounter = 0;
	
	public Gui() {
		initComponents();
	}
	private void initComponents() {
		frame = new JFrame();
		frame.setLayout(null);
		frame.setSize(400, 300);
		frame.setTitle("Noobs Everywhere");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JPanel p1 = new JPanel();
		p1.setLayout(null);
		p1.setBounds(150,100,110,110);
		p1.setBackground(Color.red);

		final JButton b1 = new JButton("killed");
		b1.setForeground(Color.red);
		b1.setBackground(Color.cyan);
		b1.setBounds(10, 10, 100, 100);


		frame.getContentPane().add(b1);
		frame.getContentPane().add(p1);
		b1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				b1.setBounds(10 * xCounter, 100 * yCounter, 100, 100);
				xCounter++;
				yCounter++;
				
				if(yCounter > 2) {
					yCounter -= 2;
				}
				if(xCounter > 2) {
					xCounter -= 2;
				}
				frame.repaint();				
			}
		});

		frame.setVisible(true);
	}
}
 

JavaNoobiee

Mitglied
Hmm bei deinem Beispiel scheint es auch nicht zu funktionieren also zumindest bei mir.. ich selbst bekomme es auch nicht mit der repaint Funktion zum laufen.:rtfm:
 

Network

Top Contributor
Was passiert wenn du dein Fenster bewegst, vergrößerst und/oder verkleinerst?
Befindet sich dein JButton dann an der richtigen Stelle?
 

knilch

Bekanntes Mitglied
hi,
ich habs nochmal überprüft. Der Button bewegt sich, wenn man darauf klickt. Hast du mal ein clean und ein neuer Build vom Projekt gemacht?
 

JavaNoobiee

Mitglied
@knilch was meinst du mit build und clean?? sorry bin echter Anfänger. Also ich habe ein neues Projekt angelegt und dein Code rein kopiert auch nach deinem benannt geht trotzdem nicht.
@Network Selbst wenn ich die Fenstergröße selber ändere passiert nichts wenn ich auf den Button drücke. Auch nicht wenn ich erst drücke und dann ändere.

Mein Betriebssystem ist windows 7 und ich benutze elipse vllt liegts daran?
 

Network

Top Contributor
Ich habe deinen Code jetzt mal überprüft und er enthält mehrere Fehler:

Fehler 1 ist in Zeile 43/44:
Java:
p1.add(b1);
add(b1);
Hier fügst du deinen JButton "b1" nochmals dem JFrame hinzu. Das bedeutet auch er wird aus dem JPanel wieder entfernt, dem du den JButton eine Zeile vorher hinzufügt hast.


Aber der eigentliche Fehler liegt bei dir in Zeile 37:
Java:
JButton b1 = new JButton("killed");
Hier erstellst du eine neue lokale Variable mit dem Namen "b1". Diese Variable ist NUR INNERHALB der Methode sichtbar.
Die Variable "b1" auf die dein TestActionListener zugreift referenziert einen anderen JButton, und zwar den den du in Zeile 19 instanzierst.

Java:
package timer;
     
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.util.Timer;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
     
     
     
     
    public class  Gui extends JFrame
    {
        JButton b1; // korrektur
        Timer t = new Timer();
        public Gui()
        {
         initComponents();
        }
        private void initComponents() {
            setLayout(null);
            setSize(400, 300);
            setTitle("Noobs Everywhere");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
           
            JPanel p1 = new JPanel();
            p1.setLayout(null);
            p1.setBounds(150,100,110,110);
            p1.setBackground(Color.red);
           
            b1 = new JButton("killed"); // korrektur
            b1.setForeground(Color.red);
            b1.setBackground(Color.cyan);
            b1.setBounds(200, 105, 100, 100);
           
           
            p1.add(b1);
            // korrektur
            add(p1);
            b1.addActionListener(new TestActionListener());
            }
       
       
             
           
       
     
        class TestActionListener implements ActionListener
            {
                public void actionPerformed(ActionEvent e)
                {
                b1.setBounds(100, 100, 100, 100);
                }          
            }
     
    }
Alle korregierten Zeilen wurden nochmals mit dem Kommentar "// korrektur" versehen.

Gruß
Net
 

JavaNoobiee

Mitglied
Also es funktioniert jetzt dank Network's Lösung, jedoch musste ich in Zeile 48 den Befehl add(b1); wieder hinzufügen da sonst der Button nicht auf dem Frame angezeigt wird. Danke euch beiden :toll:
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
M Swing Mix JComboBox - JButton? AWT, Swing, JavaFX & SWT 6
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
E JButton füllt ganzes JPanel auf AWT, Swing, JavaFX & SWT 6
P Verbuggte custom JButton unter Windows AWT, Swing, JavaFX & SWT 9
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
Kandum Swing JButton - onclick -> Grafikfehler AWT, Swing, JavaFX & SWT 2
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
T Swing JButton per Drag&Drop verschieben AWT, Swing, JavaFX & SWT 5
M Problem mit FlowLayout, JLabel und JButton AWT, Swing, JavaFX & SWT 4
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
D Swing JButton.setenabled(true) funktioniert nicht AWT, Swing, JavaFX & SWT 12
B JButton ausblenden AWT, Swing, JavaFX & SWT 12
G JButton deaktivieren greift nicht AWT, Swing, JavaFX & SWT 14
C JButton NullPointerException AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben