![]() |
|
|
|||||||
| AWT, Swing & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI) sowie zur Grafikprogrammierung (2D / 3D) |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Inkognito
Beiträge: n/a
|
Hallo,
ich habe 2 Probleme und schaffe es einfach nicht sie zu lösen. Ich habe einmal ein JTabbedPane mit vorerst 3 Tabs. Dann habe ich eine JScrollPane in der eine JTextPane und ein JLabel ist. Diese JScrollPane füge ich jedem Tab zu, doch es wird mir nur im 3. etwas angezeigt. Mein 2. Problem ist, dass die JTextPane abgeschnitten wird und keine Scrollbar angezeigt wird. Ich hoff es kann mir jemand weiterhelfen. Code:
public JComponent createTabbedPane(){
JTextPane textPane = new JTextPane();
textPane.setText("test test test test test test test test test\n" +
"test test test test\ntest test test test\ntest test test test\ntest test test test\n
test test test test\ntest test test test\ntest test test test\ntest test test test\n
test test test test\ntest test test test\ntest test test test\ntest test test test\n
test test test test\ntest test test test\ntest test test test\ntest test test test\n
test test test test\ntest test test test\ntest test test test\ntest test test test\n
test test test test\n");
JLabel lineNumbers = new JLabel();
lineNumbers.setText("1");
JPanel numbersAndText = new JPanel();
numbersAndText.setPreferredSize(new Dimension(650,400));
numbersAndText.setLayout(new BoxLayout(numbersAndText, BoxLayout.LINE_AXIS));
numbersAndText.add(lineNumbers);
numbersAndText.add(textPane);
JScrollPane scrp = new JScrollPane(numbersAndText);
// Register erzeugen, in das die Panels kommen
JTabbedPane elem = new JTabbedPane();
// Für jede Seite wird ein Panel erzeugt und dem Register hinzugefügt
JPanel panel1 = new JPanel();
panel1.add(scrp);
elem.addTab("Seite 1", panel1);
JPanel panel2 = new JPanel();
panel2.add(scrp);
elem.addTab("Seite 2", panel2);
JPanel panel3 = new JPanel();
panel3.add(scrp);
elem.addTab("Seite 3", panel3);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1, 1));
panel.add(elem);
return panel;
}
|
|
| #2 (permalink) | |
|
Stammbenutzer
CD-R 80
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
|
Man kann nicht ein und dieselbe Scrollpane auf mehrere Tabs legen. (Das geht prinzipdendingt nicht - jede Component (also auch die Scrollpane) hat z.B. eine Methode "getParent", die die übergeordnete Component liefert - und welches Tab sollte dann dort zurückgegeben werden?).
Du wirst dir etwas anderes überlegen müssen. - Entweder, die ScrollPane aus den Tabs rausnehmen, und in die Tabs nur das reinlegen, was WIRKLICH in allen Tabs unterschiedlich ist. - Oder mehrere ScrollPanes erstellen, und jedem Tab seine eigene ScrollPane hinzufügen (Das könte schwierig werden: In allen TextAreas soll ja das gleiche stehen - das ist dann vmtl. ziemlich kompliziert). - Man könnte wohl auch dafür sorgen, dass die ScrollPane immer in der "sichtbaren" Tab liegt, aber das wäre evtl. recht murksig-hackig. - ... |
|
|
|
| #3 (permalink) | |
|
Inkognito
Beiträge: n/a
|
ok, danke!
jetzt habe ich noch das Problem das ich keinen Scrollbalken sehe und alles einfach abgeschnitten wird. Es ist wichtig das ich einen gemeinsamen Scrollbalken für die Textarea und Textpane habe. Code:
JTextPane textPane = new JTextPane();
textPane.setText("test test test test test test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n" +
"test test test test\n");
Color gray = new Color(255,240,245);
JTextArea lineNumbers = new JTextArea();
lineNumbers.setBackground(gray);
lineNumbers.setColumns(1);
lineNumbers.setText("1 \n2");
JPanel numbersAndText = new JPanel();
//numbersAndText.setPreferredSize(new Dimension(650,400));
numbersAndText.setLayout(new BoxLayout(numbersAndText, BoxLayout.LINE_AXIS));
numbersAndText.add(lineNumbers);
numbersAndText.add(textPane);
JScrollPane scrp = new JScrollPane(numbersAndText);
|
|
| #4 (permalink) | |
|
Stammbenutzer
CD-R 80
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
|
Hat es einen Grund, dass du ein BoxLayout verwendest? Ich weiß nicht, wie das mit dem PreferredSize der enhaltenen Components umgeht.... Schonmal mit BorderLayout getestet?
Sonst... hab grad keine Lust, mir das was compilierbares draus zu basteln. |
|
|
|
|
| Lesezeichen |
Latex Maths & Physics Editor ...
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit JTabbedPane | :D :D :D | AWT, Swing & SWT | 3 | 05.06.2008 15:10 |
| Probleme bei Initialisierung von JTabbedPane | minos5000 | AWT, Swing & SWT | 4 | 11.01.2008 16:57 |
| Probleme mit JTabbedPane | Smithers | AWT, Swing & SWT | 2 | 14.03.2005 15:19 |
| GUI Probleme mit JTabbedPane und jPanel | Tarantino (Gast) | AWT, Swing & SWT | 1 | 15.12.2003 21:16 |
| GUI Probleme mit jTabbedPane und jPanel | Tarantino (Gast) | Java Basics - Anfänger-Themen | 0 | 15.12.2003 04:42 |