Swing Aktualisieren eines JPanels nach Tasteneingabe

MrHeez

Mitglied
Guten Abend,

ich habe mich die letzten Stunden mit der repaint()-Methode beschäftigt(und auch mal revalidate() in Betracht gezogen) und bin zu dem Schluss gekommen, dass der Folgende Code nicht so klappt wie ich es möchte, da das Layout zwar ein Mal im Konstruktor(wie ihr sehen werdet) aufgerufen wird, danach aber nicht nochmal aktualisiert. Wie bekomme ich es am Besten hin, dass sich nach einer Tasteneingabe das Layout aktualisiert?

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class SpielFenster extends JFrame {
	public SpielFenster(){
		this.setTitle("Schiffe versenken");
		this.setSize(446, 478);
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation((d.width-418)/2, (d.height-450)/2);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		SpielFeld sf = new SpielFeld();
		StatusLeiste sl = new StatusLeiste();
		Koordinaten1 k1 = new Koordinaten1();
		Koordinaten2 k2 = new Koordinaten2();
		addKeyListener(new SpielFeld());
		this.setLayout(new BorderLayout());
		this.add(sf);
		this.add(sl , BorderLayout.SOUTH);
		this.add(k1);
		this.add(k2);	
		this.setResizable(false);
		this.setVisible(true);
	}
	

}

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

public class SpielFeld extends JPanel implements KeyListener{
	int posX;
	int posY;
	
	
	public SpielFeld(){
		this.setSize(401, 400);
		this.setLocation(40,40);
		this.setBackground(Color.blue);
		this.requestFocus();
	}

	

	
	public void paint(Graphics g){
		Font test = new Font("Serif" , Font.BOLD , 25);
		super.paint(g);
		g.setColor(Color.black);
		for(int i = 0 ; i < 10 ; i++){
			for(int j = 0 ; j < 10 ; j++){
				g.drawRect(i*40, j*40, 40, 40);
			}
		}
		g.setColor(Color.BLACK);
		g.fillRect(posX, posY, 80, 40);
		}
	
    
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_DOWN){
			System.out.println(posY);
			posY = posY + 40;
			this.revalidate();
			this.repaint();
			if(posY > 360){
				posY = 0;
			}
		}
		}
	

    
	public void keyReleased(KeyEvent e) {}
    
    
	public void keyTyped(KeyEvent e) {}
  
    
	}

In der KeyPressed Methode der zweiten Klasse verändert sich der posY, Wert, da ich ihn durch manuelles debuggen auf der Konsole anzeigen lasse(durch println()). Also wird mein Wert bei VK.DOWN betätigung geändert. Wie aber könnte ich das LayOut dann am geschicktesten "aktualisieren"? Repaint okay, das führt er im Hintergrund aus, das aktualisiert aber nicht das JPanel an sich, oder? Sieht einfach nur danach aus.
 

xehpuk

Top Contributor
[JAVA=17] addKeyListener(new SpielFeld());[/code]
Sollte das nicht eher so lauten?
[JAVA=17] addKeyListener(sf);[/code]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Aktualisieren eines JPanels AWT, Swing, JavaFX & SWT 13
Y Swing Aktualisieren eines JPanel mit ArrayList im TableLayout AWT, Swing, JavaFX & SWT 2
G Aktualisieren eines Thread? AWT, Swing, JavaFX & SWT 7
R Name eines Tabs aktualisieren AWT, Swing, JavaFX & SWT 2
K Aktualisieren eines JScrollPane AWT, Swing, JavaFX & SWT 2
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
G JavaFX BarChart während der Runtime aktualisieren AWT, Swing, JavaFX & SWT 4
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Swing JLabel Verknüpfung aktualisieren AWT, Swing, JavaFX & SWT 3
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
M Muss man die ObservableList aktualisieren? AWT, Swing, JavaFX & SWT 3
B Bounds aller Panels aktualisieren AWT, Swing, JavaFX & SWT 0
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
M JavaFX Automatisches Aktualisieren der Seite AWT, Swing, JavaFX & SWT 26
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
Z jLabel von Methode aus aktualisieren AWT, Swing, JavaFX & SWT 7
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
C JavaFX TreeTableView aktualisieren AWT, Swing, JavaFX & SWT 10
R GUI Element in einer Methode aktualisieren (JTextPane) AWT, Swing, JavaFX & SWT 13
thobren JavaFX textarea nach setPrefRowCount Ansicht aktualisieren AWT, Swing, JavaFX & SWT 1
Regedit JavaFX Java Canvas hört ständig auf zu aktualisieren/malen AWT, Swing, JavaFX & SWT 3
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
A JFace/SWT: ListViewer Inhalt nach Selection in zweitem List Viewer aktualisieren! AWT, Swing, JavaFX & SWT 5
L GUI - Jpanel - Splitpane will nicht aktualisieren AWT, Swing, JavaFX & SWT 4
2 Zeit Differenz automatisch aktualisieren AWT, Swing, JavaFX & SWT 1
N JavaFX Stage aktualisieren AWT, Swing, JavaFX & SWT 5
A JComboBox mit Array aktualisieren AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
O Statusleiste mit JLabel aktualisieren AWT, Swing, JavaFX & SWT 5
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
AssELAss Verzeichnis JFileChooser aktualisieren AWT, Swing, JavaFX & SWT 0
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J GUI/Random aktualisieren? AWT, Swing, JavaFX & SWT 3
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
P Swing Aktualisieren von JFrame in einem onClick-Ereignis AWT, Swing, JavaFX & SWT 11
B JTable aktualisieren AWT, Swing, JavaFX & SWT 22
K SWT DataBinding, Anzahl der Zeilen aktualisieren AWT, Swing, JavaFX & SWT 4
G JRadioButton aktualisieren nicht... AWT, Swing, JavaFX & SWT 10
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
D Swing JComboBox aktualisieren AWT, Swing, JavaFX & SWT 4
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
S Inhalt einer JComboBox aktualisieren AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
A JButton in einem Array aktualisieren AWT, Swing, JavaFX & SWT 8
Kenan89 JTable aktualisieren AWT, Swing, JavaFX & SWT 21
B Swing Fensterinhalt aktualisieren AWT, Swing, JavaFX & SWT 11
S Spezielle komponente aktualisieren AWT, Swing, JavaFX & SWT 9
V Swing JProgressBar aktualisieren AWT, Swing, JavaFX & SWT 14
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
C jTable aktualisieren AWT, Swing, JavaFX & SWT 2
M TabbpedPane Anzeige aktualisieren AWT, Swing, JavaFX & SWT 6
X Swing JTree aktualisieren AWT, Swing, JavaFX & SWT 2
P AWT Fenster aktualisieren, nachdem ich JComboBox ändere AWT, Swing, JavaFX & SWT 9
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
D Elternfenster vom JDialog aktualisieren oder nicht ? AWT, Swing, JavaFX & SWT 7
O JFrame: Daten alle paar Sekunden aktualisieren AWT, Swing, JavaFX & SWT 3
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
S JTable - Aktualisieren / Neu zeichnen. AWT, Swing, JavaFX & SWT 5
C Daten aus DB -> JTable aktualisieren klappt nicht AWT, Swing, JavaFX & SWT 16
M Zeichnung aktualisieren AWT, Swing, JavaFX & SWT 3
D Swing JTextField aus anderer Klasse aktualisieren AWT, Swing, JavaFX & SWT 2
L GUI aktualisieren? AWT, Swing, JavaFX & SWT 4
X Tabelle während Funktionsaufruf aktualisieren AWT, Swing, JavaFX & SWT 11
V Panel/Icon aktualisieren AWT, Swing, JavaFX & SWT 10
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
M Swing Aktualisieren von laufenden Anwendungen AWT, Swing, JavaFX & SWT 10
C Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind AWT, Swing, JavaFX & SWT 3
S Swing Probleme beim Aktualisieren einer JComboBox nach Auswahländerung AWT, Swing, JavaFX & SWT 2
J JLabel aktualisieren AWT, Swing, JavaFX & SWT 8
N Swing MainWindow(JFrame) aktualisieren(neuzeichnen) repaint AWT, Swing, JavaFX & SWT 4
K Swing JTable Model aktualisieren AWT, Swing, JavaFX & SWT 2
K LayoutManager Borderlayout - NORTH aktualisieren AWT, Swing, JavaFX & SWT 10
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
K JTable aktualisieren AWT, Swing, JavaFX & SWT 9
M JFrame aktualisieren/refreshen? AWT, Swing, JavaFX & SWT 4
A Haupt JFrame inkl. aller Komponenten aktualisieren? AWT, Swing, JavaFX & SWT 3
L Swing Daten in JTable aktualisieren AWT, Swing, JavaFX & SWT 5
S Swing JTable nach einer Änderung einer Zelle komplett aktualisieren. AWT, Swing, JavaFX & SWT 10
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
H UI aktualisieren AWT, Swing, JavaFX & SWT 9
R Tab-Inhalte aktualisieren AWT, Swing, JavaFX & SWT 4
B Swing JFreeCharts echtzeit Charts bzw Aktualisieren von Charts AWT, Swing, JavaFX & SWT 8
D JTree zur richtigen Zeit aktualisieren. AWT, Swing, JavaFX & SWT 3
S JTable aktualisieren AWT, Swing, JavaFX & SWT 4
U JTable in einem Tab aktualisieren aus anderem Tab heraus initiiert AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben