JAVA JTextArena + JScrollPane Frage

Joined
Apr 8, 2007
Messages
6,474
Reaction score
0
Hího,... ich hab mein Problem wie bekomm ich das ScrollPane zum Laufen in der TextArea wenn das Layout auf null gesetzt ist ?... weiss da wer was ?...
 
Last edited:
Konkreter...mit Code am besten ;) Eigentlich muss man doch das JScrollPane nur mit der JTextArea initialisieren und dann dem Scrollpane seine Position sagen, oder? Ich mein das wär Alles gewesen...Aber ich guck gern nochmal über Code drüber.
 
Konkreter...mit Code am besten ;) Eigentlich muss man doch das JScrollPane nur mit der JTextArea initialisieren und dann dem Scrollpane seine Position sagen, oder? Ich mein das wär Alles gewesen...Aber ich guck gern nochmal über Code drüber.


also :

public class test1 extends JFrame{

public test1(){
setTitle("Test1");
setSize(400,400);
setLocation(100,100);
this.setVisible(true);
init();
}

public void init(){




JTextArea textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);

getContentPane().add(scrollPane, "Center");

}

public static void main(String[] args){
new test1();
}


so klappt das ... mit dem Scrollpane aber dann gehts übers ganze Fenster aber dass solls nicht ich will das in ein normales JPanel machen ... aber wenn ich das so mache:

public class test1 extends JFrame{

public test1(){
setTitle("Test1");
setSize(400,400);
setLocation(100,100);
this.setVisible(true);
init();
}

public void init(){
JPanel panel=new JPanel();
panel.setLayout(null);

JTextArea textArea = new JTextArea(5,5);
panel.add(textArea);

textArea.setBounds(100,100, 100,100);
JScrollPane scrollPane = new JScrollPane(textArea);
panel.add(scrollPane);
//getContentPane().add(scrollPane, "Center");
getContentPane().add(panel);
}

public static void main(String[] args){
new test1();
}

geht gar nix mehr ...
 
Last edited:
Code:
JScrollPane scroll=new JScrollPane(deineTextArea);
scroll.setBounds(10,60,490,300);
deinPanel.add(scroll);
 
ah so geht das ... dann war wohl mein größter Fehler, dass ich versucht hab das Textpannel extra zu setzen etc.
auf jeden Fall vielen dank :)

hab ich wenigstens das GUI Problem weg... wir müssen nämlich nen Programm proggen bis zu den Klausuren, für dass wir wenns läuft +10% schon mal für die Klausur bekommen ...aber da ich dass noch nie so von Grund auf gemacht hab isses gerade sehr schwer den Überblick zu behalten^^
und die ganzen Abstufungen zwischen den Ebene zu beachten ... verstehe schon warum das einige gar nicht machen... aber ich nehms als Übung für die Klausur :D
 
Hjah...ich war damals in unserer Semesterarbeit fürs GUI zuständig und musste mir da auch viel selbst erarbeiten. Keine Ahnung, ob meine Lösungen immer so die besten sind, aber sie laufen ;)
 
Hjah...ich war damals in unserer Semesterarbeit fürs GUI zuständig und musste mir da auch viel selbst erarbeiten. Keine Ahnung, ob meine Lösungen immer so die besten sind, aber sie laufen ;)

naja man könnte sich atm auch nen eigenen LayoutManager bauen weil setbounds ist halt sehr statisch ...aber unser Prof meinte, wenn das Layout zum Schluss scheisse is, is auch egal ^^
 
Ach...wenn man einmal mit Null-Layout angefangen hat, dann will man doch auch gar nicht mehr aufhören :p Hab am Ende sogar von dem Mist geträumt hrhr
 
joa ... naja wie gesagt das Layout ist ihm eigentl. egal ... mir geht bloss atm die Schichten-Architektur
und das Observer-Pattern auf den Sack^^ ich weiss gar nicht wie ich anfangen soll :D
 
ich hab nochmal ne Frage... ich hab jetzt mal 2 Testklassen erstellt um das Problem zu schildern :

public class test extends JPanel {
public test(){
setLayout(null);
JButton B=new JButton("HELLLLO");
add(B);
B.setBounds(100, 100,100, 100);

}
}

die Klasse extends nen JPanel welches Layout null hat... dieses will ich auf ein JDialog einbringen:


public class test2 extends JDialog{
public test2(String bla2){
test bla=new test();
getContentPane().add(bla,BorderLayout.NORTH;
}

public static void main(String[] args){
test2 bl=new test2("HELLO");
bl.setVisible(true);
}
}

so geht das aber nicht er öffnet mir dann einfach nur ein leeres Fenster.... wenn ich aber das Layout beim ersten nicht Null setzen z.b. so :

public class test extends JPanel {
public test(){
//setLayout(null);
JButton B=new JButton("HELLLLO");
add(B,BorderLayout.NORTH);
//B.setBounds(100, 100,100, 100);

}
}

und nix mit setBounds mache gehts... aber ich will mit setBounds arbeiten kann mir wer helfen ?
 
also ne konkrete Lösung für dein Problem kann ich dir grad noch nicht sagen, evtl. später ^^ - aber zumindest die Herkunft von dem Problem kann ich dir erklären denk ich ;)

das Problem dürfte darin liegen, dass das Borderlayout die Größe der Randbereiche daran festmacht wie groß die Inhalte sind. Der Centerbereich wird dementsprechend dann angepasst.
Dein Nulllayoutelement liefert dem BorderLayout aber keine richtige Größe, daher wird die Größe des Randelements auf 0 gesetzt. und alles was du siehst ist der Centerbereich - wenn du dein Element statt dessen in den Centerbereich einfügst, der ja immer die maximal mögliche Größe hat siehst du es zumindest :)

du könntest z.B. in der Klasse die momentan das Nulllayout nutzt auch auf einen LayoutManager umsteigen oder eben in der anderen Klasse kein BorderLayout nutzen ;) Wie genau du's machen solltest kann ich dir nicht sagen aber ich denke ohne in der Richtung was zu ändern kommst du da nicht weiter ;)
 
mm okay ... mm na okay muss ich mich wohl doch mal mit dem Layout Manager beschäftigen ... naja okay danke für die Antwort :)

edit: du hast mir die Lösung geliefert ^^ habs jetzt Center und mein Button den ich im JDialog einführen wollte auf South und klappt .... thx :D
 
Back
Top