Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

1

18.08.2009, 12:30

setContentPane() geht nicht

Guten Tag,

als erstes muss ich sagen, ich bin ein "Ubuntu/Linux"-Anfänger - so bitte ich um Verzeihung, wenn ich evtl. Antworten nicht sofort verstehe. :rolleyes:

Nun das Problem, dass ich habe:
Ich wollte eine kleine JAVA/GUI-Applikation schreiben.

Leider kriege ich es nicht hin, in einen JFrame-Objekt mittels setContentPane() ein JPanel-Objekt einzufügen.

Ich habe zuerst "Eclipse Java EE IDE for Web Developers" verwendet, danach "Eclipse SDK Version: 3.5.0".

Das geschriebene Code funktioniert unter WinXp SP3 wunderbar, so gehe ich davon aus, dass ich entweder
bei der Installion von JAVA 1.5.0 was falsches gemacht habe(obwohl ich, dass weniger glaube, da ein Rahmen (JFrame) erscheint).
oder
Vielleicht habe ich mit der Eclipse-Installation was falsches gemacht. Eine Einleitung dazu, habe ich unter
http://wiki.ubuntu-forum.de/index.php/Eclipse
gefunden. Die Pakete habe ich direkt aus Eclipse.org. Die empfohlene Plug-Ins habe ich nicht installiert.

Ich hoffe ihr könnt mir weiterhelfen. Bis jetzt war ich mit Ubuntu 9.04 - Jaunty Jackalope zufrieden, aber ich muss auch aus beruflichen Gründen ab und an JAVA-Anwendungen schreiben.

Danke in Voraus

Grüße

Terrex

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

2

18.08.2009, 13:17

Dann wäre es doch einigermaßen brauchbar, wenn du etwas source posten würdest, dann kann man dir sicher leichter helfen!

//EDIT:

Warum java 1.5?
Und bei eclipse ist es am einfachsten, wenn du dir das paket von eclipse.org runterlädst, anstatt das aus der paketverwaltung zu verwenden!
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »chroot« (18.08.2009, 13:17)


  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

3

18.08.2009, 23:16

Hallo Chroot,

danke für die schnelle Reaktion.
Mein Code sieht so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public TheMainClass(){
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		int screenSizeWidth = toolkit.getScreenSize().width;
		int screenSizeHight = toolkit.getScreenSize().height;
		
		JFrame theFrame = new JFrame();
		JPanel thePanel = new JPanel();
		JButton theButton = new JButton("test");
		
		thePanel.setBackground(Color.green);
		thePanel.add(theButton);
		theFrame.setSize(		(int)(screenSizeWidth/2),   (int)(screenSizeHight/2));
		theFrame.setLocation(	(int)(screenSizeWidth/4), 	(int)(screenSizeHight/4));
		theFrame.setTitle("Halloa");
		
		theFrame.setContentPane(thePanel);
		//theFrame.getContentPane().add(thePanel);
		theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		theFrame.setVisible(true);
	}


und gestartet wird das ganze durch die Main_Methode.

Quellcode

1
2
3
4
public static void main(String[] args) {
		// TODO Auto-generated method stub
TheMainClass Start = new TheMainClass();
	}


Der Code sollte so funktionieren, auch da ich ihn auf eine andere Plattform erfolgreich getestet habe.
Auf mein PC erscheint nur der Rahmen mit Titel aber der Panel ist weder "Grün" noch besitzt er ein Knopf.

Ich habe die Java-Version 1.5.0_18, weil dieser von den Paketverwalter Synaptic installiert wurde (wie gesagt ich bin ein Anfänger und ich staune über meine eigenen kleinen Schritte :P )

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

4

19.08.2009, 08:15

Also, wegen java:

Quellcode

1
sudo apt-get install sun-java6-jdk


Und wegen deinem code, ich vermute mal, das deine Klass "TheMainClass" heißt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
public class TheMainClass extends JFrame
{
   public TheMainClass()
   {
   	  JButton button1 = new JButton("Test");

   	  //du könntest auch schreiben
   	//this.getContentPane.add(button1);
   	getContentPane.add(button1);
   }
}


Außerdem solltest du ein layout zuweisen!
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

5

19.08.2009, 15:47

Hallo,

@chroot
Danke, an die Konsolenbefehle muss ich mich erst gewöhnen. Diese klingeln erstmal einfach, aber man muss draufkommen (oder googeln) 8) .
jetzt habe ich die Java-Version 1.6.0_14
Ja, meine Klasse heißt TheMainClass

Aber leider funktioniert es denoch nicht. Das ist echt merkwürdig, mittlerweile funktioniert alles so wie ich es mir gedacht haben (mp3, videos, LAN, etc.) aber diese "einfache" Java Applikation, will nicht funktionieren.

Ich arbeite nicht mit "extends JFrame" aus Faulheit :P : Wenn ich, nachdem der Objektname geschrieben habe, ein Punkt einfüge, zeigt Eclipse automatisch, die möglichen Methoden und Variablen, die dieses Objekt zur Verfügung stehen.
Aber theoretisch sollte es nichts ändern. Ich probiere es später noch aus.

Ich danke nochmal

Grüße

Terrex

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »terrestrex« (19.08.2009, 15:47)


chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

6

19.08.2009, 16:53

Ich arbeite nicht mit "extends JFrame" aus Faulheit :P :
Du bist programmieranfänger oder?
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

7

20.08.2009, 11:29

Ja, aber mit Begeisterung!

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

8

20.08.2009, 11:40

Dann lass dir von jemand er das schon mehrere jahre macht sagen, das das weniger mit faulheit als mit unverständnis zutun hat!

Also,

Quellcode

1
extends JFrame

ist das was du machen musst, um das zu erreichen was du willst!
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

9

20.08.2009, 11:54

Hallo,
ich habe mein Code jetzt so geändert:

Quellcode

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
public class TheMainClass extends JFrame{

	public TheMainClass(){
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		int screenSizeWidth = toolkit.getScreenSize().width;
		int screenSizeHight = toolkit.getScreenSize().height;
		
		
		JPanel thePanel = new JPanel();
		JButton theButton = new JButton("test");
		
		thePanel.setBackground(Color.green);
		thePanel.add(theButton);
		setSize(		(int)(screenSizeWidth/2),   (int)(screenSizeHight/2));
		setLocation(	(int)(screenSizeWidth/4), 	(int)(screenSizeHight/4));
		setTitle("Halloa");
		
		this.setContentPane(thePanel);
		//theFrame.getContentPane().add(thePanel);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		setVisible(true);
	}
....
....
}


Aber das Resultat ist gleich.

Du hast ja recht: Der Code wird durch Vererbung übersichtlicher. Aber nach mein Verständnis sollte es sich nichts ändern, da die Methoden ja gleich sind.

Ich werde versuchen demnächst, Eclipse vollständig zu entfernen, es wieder runterzuladen und zu konfigurieren. Vielleicht tut sich da was.

Man leist von einander.

Bis dann

Terrex

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

10

20.08.2009, 12:04

Du musst den code den ich dir poste schon auch lesen!

1. schmeiß nicht alles in den konstruktor rein
2. nicht "setContentPane" sondern "getContentPane.add(...)"

Zu 2., du holst dir ja das vorhandene contentpane und fügst etwas neues darauf hinzu! Und nicht vergessen ein layout zu verwenden!
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »terrestrex« ist der Autor dieses Themas

Beiträge: 6

Registrierungsdatum: 18.08.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

11

22.08.2009, 22:29

Juhuuuuuuu,
endlich funktioniert's. :thumbsup: :thumbsup:

Es ist mehr oder weniger aus Zufall passiert: Bei der Installation von "sysinfo" ist in der Konsole erschienen, dass Pakete mit java-5 zu deinstallieren sind.
Ich habe es bestätigt und dann ging's wieder.

Wahrscheinlich lag der Fehler die ganze Zeit an eine fehlerhafte Installation des Java Pakets. Wieso diese Pakete bei der installation von Java-6 nicht entfernt worden sind aber bei der Installation von "sysinfo"? Keine Ahnung! In Moment bin ich nur glücklich, dass in mein Frame ein Button erscheint.

Ich danke chroot für all seine/ihre Mühe! "Du hast nicht die Lösung gefunden, aber Leute wie Du machen solche Foren zu einer Community!"

Danke

Terrex

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »terrestrex« (22.08.2009, 22:29)


chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

12

24.08.2009, 11:11

Ich danke chroot für all seine/ihre Mühe!
Seine! Ich bin männlichen geschlechts! Also, kein problem!

Quellcode

1
Wahrscheinlich lag der Fehler die ganze Zeit an eine fehlerhafte Installation des Java Pakets. Wieso diese Pakete bei der installation von Java-6 nicht entfernt worden sind aber bei der Installation von "sysinfo"? Keine Ahnung! In Moment bin ich nur glücklich, dass in mein Frame ein Button erscheint.


Nicht böse sein, aber an deinem source war etwas nicht in ordnung, nicht an java!

Du solltest dir angewöhnen, das du egal was du programmierst, immer von einer basis klasse ableitest. In diesem fall von jframe, oder eben wenn du ein eigenes textedit baust, dann einfach von jtextedit ableiten, oder was weiß ich.
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen