ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
696
696
EMPFEHLEN
-
16.04.05 12:58 #1
- Registriert seit
- Feb 2005
- Beiträge
- 5
Hallo,
ich sitze nun seit mehren Tagen an meinem Java Programm und habe viele Probleme schon gelöst. Doch nun lauf ich gegen die Wand:
Ich habe ein Fenster erstellt mit JWindow, damit ich keine extra Zeug habe wie Titelleiste usw. Denn ich möchte das mein Programm auf Windows, MacOSX und Linux so weit wie möglich gleich aussieht.
Hier mein Programm:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
/* Noetige Kopfdateien für die grafische Oberfläche * *********************************************** */ import java.awt.*; // Grafik zeugs import java.awt.event.*; import javax.swing.*; /* Klasse client * **************** */ public class client extends JWindow { // Die Elemente für die Oberflaeche private JWindow frame_fenster = new JWindow(); private JTextField text_ip = new JTextField(); private JLabel label_beenden = new JLabel(new ImageIcon("MEINBEEENDE_BUTTON.gif")); private JLabel label_hintergrund = new JLabel(new ImageIcon("MEIN_HINTERGRUND.gif")); public client(String Titel, int breite, int hoehe) { Container panel = getContentPane(); // Kontainer erstellen panel.setLayout(null); // Layout festlegen text_ip.setText("localhost"); text_ip.setBounds(100,100,100,30); panel.add(text_ip); label_beenden.setBounds(678,510,102,31); // Beendenknopf setzen panel.add(label_beenden); label_hintergrund.setBounds(0,0,800,600); // Hintergrund setzen panel.add(label_hintergrund); label_beenden.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent event) { System.exit(0); } }); setLocation(100,100); // Ort des Geschehens setzene setSize(breite,hoehe); // Fenstergrösse einstellen setVisible(true); // Sichtbar machen } // Ende des Konstruktors pdvclient // Main-Methode der Klasse client public static void main(String[] args) { pdvclient client = new pdvclient ("Client",800,600); } // Ende der Main-Methode } // Ende der Klasse client
Das Problem:
Das Textfield (text_ip) ist zwar zusehen aber ich kann es nicht anklicken und den Textinhalt verändern.
Fragen:
Liegt das Problem an Ebenen (Panel)? Wie bekomme ich das Problem gelöst?
Freu mich auf angeregte Lösungsvorschläge
-
Ich habe da eine Frage:
Du postest oben die Klasse
public class client
aber unten in der main() steht:
pdvclient client = new pdvclient ("Client",800,600);
Ich nehme an es gibt eine Klasse pdvclient, die von client abgeleitet ist und evtl. ein paar Dinge macht, die zum Problem werden. Vor allem weil Du in client das Textfield als private deklarierst und damit in der abgeleiteten Klasse nicht zur Verfügung steht.
-
Hi!
Ich kann dir nicht direkt weiterhelfen, ich hab mir das Zeug mal kopiert und nur die Vererbung geändert, also nicht von JWindow sondern von JFrame erben lassen (und du kannst die Zeile, in der du das JWindow-Objekt erzeugst, auskommentieren, brauchst du eh nicht weil du das Fenster ja über den Konstruktor erzeugst).
Das Witzige dabei ist, dass das Textfeld dann ganz normal nutzbar ist. Du solltest dir JWindow vielleicht nochmal genauer anschauen, da scheint wohl das Problem zu liegen. Genaueres weiß ich aber auch nicht, hatte bis jetzt nur mit JFrames zu tun.
Und du solltest bei Swing immer die Methode pack() aufrufen, in deinem Fall vielleicht vor der Zeile setLocation(100,100).
Gruß und ich hoffe es hat dir wenigstens ein bisschen geholfen!
-
16.04.05 21:21 #4
- Registriert seit
- Feb 2005
- Beiträge
- 5
Jap, es lag an JWindow!
Nach weiteren Stunden in google und java doc habe JFrame doch verwendet und
dafür den Weg gefunden das man die Titelleiste doch verschwinden lassen kann.
Für welche die das auch noch nie gesehen haben:
setUndecorated(true); // zaubert die Titelleiste wech vom JFrame
Das mit client und pdvclient, muss ich entschuldigen! Tippfehler beides sollte client sein!
-
Ja, genau, das mit dem setUndecorated(true) wollte ich auch noch gerade hinzufügen, aber hast die Lösung ja selber schon gefunden :o)
Ähnliche Themen
-
[SUSE 10.2] lvm findetLaufwerk aber es ist nicht nutzbar
Von mc_gulasch im Forum Linux & UnixAntworten: 5Letzter Beitrag: 02.12.07, 15:11 -
MessageBox nicht mehr nutzbar nach DoModal()
Von Padd_y im Forum VisualStudio & MFCAntworten: 5Letzter Beitrag: 28.03.07, 21:58 -
AWT: Panel durch anderes Panel ersetzen. Neuzeichnen-Problem
Von Semmerl im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 22.05.05, 11:22 -
Funktionen in Klassen sind in abgeleiteter Klasse nicht nutzbar.
Von danielmueller im Forum PHPAntworten: 4Letzter Beitrag: 22.10.04, 11:27 -
Frohe Weihnachten? - wohl nicht
Von santin im Forum SmalltalkAntworten: 4Letzter Beitrag: 08.12.03, 14:09





Zitieren
Login





