M
micky
Gast
Hallo,
ich bin absoluter neuling in java und möchte folgendes ausprobieren: ich möchte eine verkehrsampel anzeigen lassen und darunter drei buttons platzieren (rot, gelb, grün). wenn man auf die buttons drückt, so soll die entsprechende lampe leuchten, bzw. später will ich noch einen weiteren button hinzufügen, bei dem die ampelschaltung mittels threads simuliert wird.
jetzt habe ich das problem, dass ich nicht genau weiss, wie ich die ampel und die buttons zusammen auf einen frame bekomme. in was für eine komponente muss die grafik eingefügt werden? ich glaube, ich bin da auf dem völlig falschen dampfer. vielen dank für eure hilfe!
mick
ich bin absoluter neuling in java und möchte folgendes ausprobieren: ich möchte eine verkehrsampel anzeigen lassen und darunter drei buttons platzieren (rot, gelb, grün). wenn man auf die buttons drückt, so soll die entsprechende lampe leuchten, bzw. später will ich noch einen weiteren button hinzufügen, bei dem die ampelschaltung mittels threads simuliert wird.
jetzt habe ich das problem, dass ich nicht genau weiss, wie ich die ampel und die buttons zusammen auf einen frame bekomme. in was für eine komponente muss die grafik eingefügt werden? ich glaube, ich bin da auf dem völlig falschen dampfer. vielen dank für eure hilfe!
mick
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Blink {
public static void main(String args[]) {
MyFrame frame = new MyFrame();
frame.setSize(300,400);
frame.setLocation(400,200);
frame.setVisible(true);
}
}
class MyFrame extends JFrame {
public MyFrame() {
super("Ampel");
addWindowListener(new WindowClosingAdapter(true));
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
// hier will ich meine ampel reinhaben, das geht aber irgendwie so nicht!
JPanel ampPan = new JPanel();
ampPan.setLayout(new FlowLayout(FlowLayout.CENTER));
ampPan.setSize(200,200);
ampPan.setBackground(Color.LIGHT_GRAY);
//ampPan.repaint(); <-- das ist wahrscheinlich absoluter blödsinn, oder??
JPanel butPan = new JPanel();
butPan.setLayout(new FlowLayout(FlowLayout.CENTER));
butPan.add(new JButton("ROT")); // action-listener kommen spaeter...
butPan.add(new JButton("GELB"));
butPan.add(new JButton("GRÜN"));
cp.add(ampPan, BorderLayout.CENTER);
cp.add(butPan, BorderLayout.SOUTH);
}
/*public void paint(Graphics g) { // hier wird die ampel gezeichnet
int xmin = getInsets().left;
int xmax = getSize().width-getInsets().right;
int ymin = getInsets().top;
int ymax = getSize().height-getInsets().bottom;
int xcenter = (xmax-xmin)/2;
int ycenter = (ymax-ymin)/2;
int d = 50;
g.setColor(Color.red);
g.fillOval(xcenter-d/2,(ycenter/2),d,d);
g.setColor(Color.gray);
g.fillOval(xcenter-d/2,ycenter,d,d);
g.fillOval(xcenter-d/2,ycenter+(ycenter/2),d,d);
g.setColor(Color.black);
g.drawRect(xcenter-d,ycenter-2*d,2*d,5*d);
} */
}