Hallo liebes Forum,
ich quäle mich gerade mit dem Einstieg in Java (reines Hobby, habe bisher in Delphi und VB geschrieben, damit kam ich sehr gut zurecht, jetzt würde mich Java aber doch mehr reizen; bisher habe ich zwei Bücher zum Thema Java, diverse Tutorials u. a.; Hauptproblem ist bei mir scheinbar der Umstieg von prozedural auf OOP...).
Das folgend Programm soll "einfach" bei Druck auf die Starttaste eine Grafik zeichnen, und bei der anderen Taste das Fenster schliessen.
Probleme hierbei:
a) Die Tasten sieht man nur, wenn man mit der Maus ein bißchen im Fenster rumfährt.
b) repaint() oder Ähnliches an das Ereignis "Druck auf die Starttaste" hinzubekommen, schaffe ich überhaupt nicht.
Ich hoffe die Fragen sind a) nicht zu blöd und b) überhaupt statthaft hier.
Viele Grüße,
Tom
P.S.: Benutzt wird das JDK 1.5 und der Java-Editor (sonst hätte ich das mit den Buttons wahrscheinlich überhaupt nicht hinbekommen...)
ich quäle mich gerade mit dem Einstieg in Java (reines Hobby, habe bisher in Delphi und VB geschrieben, damit kam ich sehr gut zurecht, jetzt würde mich Java aber doch mehr reizen; bisher habe ich zwei Bücher zum Thema Java, diverse Tutorials u. a.; Hauptproblem ist bei mir scheinbar der Umstieg von prozedural auf OOP...).
Das folgend Programm soll "einfach" bei Druck auf die Starttaste eine Grafik zeichnen, und bei der anderen Taste das Fenster schliessen.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Grafik extends JFrame {
// Anfang Variablen
private JButton jButtonStart = new JButton();
private JButton jButtonEnde = new JButton();
// Ende Variablen
public Grafik(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 300;
int frameHeight = 300;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jButtonStart.setBounds(32, 176, 89, 49);
jButtonStart.setText("Start");
cp.add(jButtonStart);
jButtonStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButtonStartActionPerformed(evt);
}
});
jButtonEnde.setBounds(168, 176, 89, 49);
jButtonEnde.setText("Ende");
cp.add(jButtonEnde);
jButtonEnde.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButtonEndeActionPerformed(evt);
}
});
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void jButtonStartActionPerformed(ActionEvent evt) {
}
public void jButtonEndeActionPerformed(ActionEvent evt) {
System.exit(0);
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new Grafik("Grafik");
}
public void paint(Graphics g)
{
int x = 10, y = 80;
int sizex, sizey = 0;
while (x < 280 && y < 180) {
sizex = 4 + (int) (Math.random() * 9);
if (Math.random() > 0.5) {
y += sizey;
sizey = 4 + (int) (Math.random() * 6);
} else {
sizey = 4 + (int) (Math.random() * 6);
y -= sizey;
}
g.drawRect(x,y,sizex,sizey);
x += sizex;
//repaint(); wäre rekursiv
}
}
}
a) Die Tasten sieht man nur, wenn man mit der Maus ein bißchen im Fenster rumfährt.
b) repaint() oder Ähnliches an das Ereignis "Druck auf die Starttaste" hinzubekommen, schaffe ich überhaupt nicht.
Ich hoffe die Fragen sind a) nicht zu blöd und b) überhaupt statthaft hier.
Viele Grüße,
Tom
P.S.: Benutzt wird das JDK 1.5 und der Java-Editor (sonst hätte ich das mit den Buttons wahrscheinlich überhaupt nicht hinbekommen...)