![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
hi,
ich hab ein Programm geschrieben, das ein Fenster (Frame) erstellt, aber aus irgendwelchen Gründen wird bei mir die Menüleiste nicht angezeigt: Code:
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
public class window extends Frame
{
static int x1, y1, cnt = 0;
public static void main(String[] args)
{
window wnd = new window();
}
public window()
{
super("Fenster");
addWindowListener(new MyWindowListener());
addMouseListener(new MyMouseListener());
this.setSize(600, 600);
this.setMenuBar(new MyMenuBar());
this.setVisible(true);
}
// Fensterleiste
class MyMenuBar extends MenuBar
{
public void MyMenuBar()
{
Menu m = new Menu("Datei");
MenuItem mi = new MenuItem("Beenden");
mi.addActionListener(new MyActionListener());
m.add(mi);
this.add(m);
}
}
// Event - Listeners
public class MyWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
setVisible(false);
dispose();
System.exit(0);
}
}
public class MyMouseListener extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
Graphics g = getGraphics();
if (window.cnt == 0)
{
window.x1 = e.getX();
window.y1 = e.getY();
System.out.println("von: " + window.x1 + " , " + window.y1);
window.cnt = 1;
}
else
{
g.drawLine(e.getX(), e.getY(), window.x1, window.y1);
window.x1 = e.getX();
window.y1 = e.getY();
System.out.println("zu: " + window.x1 + " , " + window.y1);
}
}
}
public class MyActionListener implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
setVisible(false);
dispose();
System.exit(0);
}
}
}
|
|
|
|
Nach oben #2 |
|
Chefkoch-Mod
Registriert seit: 30.05.2004
Beiträge: 433
|
Hi,
zum einen: warum erzeugt Du immer eigene Klassen, wenn Du auch die vorhandenen nutzen kannst? Zweitens: wenn Du von einer Klasse erbst und deren Konstruktor überschreibst, ist ein <i>void</i> dabei zuviel, ausserdem ist es meist nötig, den Konstruktor der Basisklasse aufzurufen. Schreib mal ein <i>super();</i> in Deine Bar. Ich hoffe, das passt dann.
__________________
Denk mal darüber nach... Lars ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen. www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de |
|
|
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
stimmt, das mit der abgeleiteten MyMenuBar - Klasse ist zu viel, das hätte man auch im Konstruktor der Hauptklasse unterbringen können, aber die anderen Klassen sind meiner Meinung nach schon wichtig, da sonst das Programm etwas unübersichtlich wird ... jedenfalls hab ich jetzt das void aus meinen Konstruktor gestrichen und die super - Methode eingefügt und jetzt klappts einwandfrei
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| JInternal Frame Fehler | asenodin | Desktop-Applikationen und Grafik | 11 | 26.12.2006 23:56 |
| Externe Klassen Panel's in einen Frame anzeigen | asenodin | Desktop-Applikationen und Grafik | 3 | 04.12.2006 01:30 |
| Frame löscht Canvas-Inhalt | tbrnds | Desktop-Applikationen und Grafik | 3 | 17.11.2005 20:28 |
| Frame ohne Titelleiste | mr.no | Desktop-Applikationen und Grafik | 4 | 06.07.2005 12:45 |
| Frame hört auf Applet mit ActionListener | Nicole66 | Allgemeine Java-Programmierung | 1 | 24.11.2004 22:12 |