Arbeite mich gerade in die GUI Programmierung ein. Und statt eines KeyListeners, wollte ich erstmal über einen Button meinen "Spieler" , also einen Balken steuern, siehe Bild. Bewegen kann ich ihn auch, aber der Button wird mir nicht angezeigt, was mich verwirrt. Auch die von mir eingestellte Hintergrundfarbe die, bevor ich es zum laufen bekam, gelb war, ist nun weiß. Wo liegt mein Fehler? Bitte auch um Korrektur!
[JAVA]
package game;
import javax.swing.*;
import java.util.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
public class Spiel extends JPanel implements ActionListener
{
JFrame fenster;
JButton test;
int A_Y = 150; // Höhenregler Spieler A
int B_Y = 150; // Höhenregler Spieler B
Graphics g;
Spiel()
{ fenster = new JFrame();
fenster.add(this);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
fenster.pack();
fenster.setBackground(Color.yellow);
fenster.setVisible(true);
//Komponenten
test = new JButton();
fenster.add(test);
test.setBounds(400,500,500,500);
test.setVisible(true);
test.addActionListener(this);
}
protected void paintComponent( Graphics g){
this.g = g;
int ha = A_Y;
int hb = B_Y;
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.drawRect(20,ha,50,150);
g.drawRect(1600,hb,50,150);
repaint();
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource() == this.test){
A_Y = A_Y + 30;
repaint();
}
}
} [/Java]
[JAVA]
package game;
import javax.swing.*;
import java.util.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
public class Spiel extends JPanel implements ActionListener
{
JFrame fenster;
JButton test;
int A_Y = 150; // Höhenregler Spieler A
int B_Y = 150; // Höhenregler Spieler B
Graphics g;
Spiel()
{ fenster = new JFrame();
fenster.add(this);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setExtendedState(JFrame.MAXIMIZED_BOTH);
fenster.pack();
fenster.setBackground(Color.yellow);
fenster.setVisible(true);
//Komponenten
test = new JButton();
fenster.add(test);
test.setBounds(400,500,500,500);
test.setVisible(true);
test.addActionListener(this);
}
protected void paintComponent( Graphics g){
this.g = g;
int ha = A_Y;
int hb = B_Y;
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.drawRect(20,ha,50,150);
g.drawRect(1600,hb,50,150);
repaint();
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource() == this.test){
A_Y = A_Y + 30;
repaint();
}
}
} [/Java]
Anhänge
Zuletzt bearbeitet: