Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > JPanel funktioniert nicht über indirektem Weg
Antwort
 
Themen-Optionen
Alt 01.09.2005, 21:44   Nach oben    #1
BoneCracker
Gast
 
Beiträge: n/a
Standard JPanel funktioniert nicht über indirektem Weg

Hi,
bei mir ist gerade etwas komisches... Hier ein Auszug aus meinem Quelltext:
Code:
package de.chribo.paint;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;

import de.chribo.paint.component.ColorSelector;
import de.chribo.paint.component.DrawingArea;
import de.chribo.paint.component.PMenuBar;

public class Paint extends JFrame {
	static {
	  try {
	    UIManager.setLookAndFeel(
	      UIManager.getSystemLookAndFeelClassName() );
	  } catch( Exception e ) { e.printStackTrace(); }
	}
	
	private JScrollPane pane = new JScrollPane();
	
	public Paint() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Simple Paint");
		JScrollPane pane = new JScrollPane();
		pane.setPreferredSize(new Dimension(600,400));
		// So Funtioniert es!
		pane.getViewport().add(new DrawingArea(800,800));
		// Wenn ich die obere Zeile auskommentiere, 
		// und diese Zeile darunter wieder nicht als
		// Kommentar deklariere, geht es nicht, obwohl es
		// eigentlich das exakt selbe machen sollte
		//addDrawingArea(new DrawingArea(800,800));
		Container cont = getContentPane();
		cont.setLayout(new BorderLayout(5, 5));
		cont.add(new JLabel("Optionen"), BorderLayout.WEST);
		cont.add(pane);
		cont.add(new ColorSelector(), BorderLayout.SOUTH);
		cont.add(new JLabel("x,y"), BorderLayout.EAST);
		cont.add(new JLabel("Ebenen"), BorderLayout.NORTH);
		new PMenuBar(this);
		pack();
		setVisible(true);
	}
	
	public void addDrawingArea(DrawingArea a) {
		pane.getViewport().add(a);
	}
	
	public static void main(String args[]) {
		Paint paint = new Paint();
	}
}
Wobei DrawingArea im Moment nichts anderes als ein JFrame ist, welches eine überschriebene paint()-Methode besitzt und einen etwas anderen Konstruktor hat (-> setPreferredSize() wird automatisch aufgerufen).

Wenn ich die DrawingArea über "pane.getViewport().add(new DrawingArea(800,800));" hinzufüge, funktioniert es so, wie es soll.
Bei "addDrawingArea(new DrawingArea(800,800));", was eigentlich exakt das selbe macht, funktioniert es nicht.

Wieso?

Mfg
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2005, 04:16   Nach oben    #2
BoneCracker
Gast
 
Beiträge: n/a
Standard

Ok,
ich habs. Wahr wohl einfach zu müde...

Der Fehler versteckt sich hier:
Code:
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Simple Paint");
		JScrollPane pane = new JScrollPane();
Hier habe ich ein lokales JScrollPane initialisiert, welches ich dann geadded habe. Die Variable "pane", welche eine Ebene höher sitzt, wird ignoriert. Damit wurde bei Methodenaufruf "addDrawingArea" natürlich nicht in das geaddete JScrollPane benutzt.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Grösse des JFrames and JPanel anpassen alekz Desktop-Applikationen und Grafik 1 15.05.2006 14:52
jPanel nach bestätigen eines dialoges wechseln risa Desktop-Applikationen und Grafik 14 18.04.2006 21:02
onLoad="test.style.visibility = 'hidden' funktioniert im FF nicht Corvin JavaScript und AJAX 7 13.02.2006 16:52
JPanel in JFrame ersetzen muge Desktop-Applikationen und Grafik 2 24.11.2005 22:18
JTabbedPanel & JPanel - Probleme mit dem Layout Tactive Desktop-Applikationen und Grafik 8 24.02.2005 15:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

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