Ich habe JTextPane, wo ich 20 Komponenten (JLabels) eingefügt habe. Leider sind alle Etiketten in einer Zeile.JTextPane - auto wrap eingefügt JLabel Komponenten
Wie kann ich erzwingen, dass das JTextPane die eingefügten Objekte automatisch umschließt?
package texteditor;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
public class JTextPaneExample extends JPanel {
private JTextPane tp;
public JTextPaneExample() {
setLayout(new BorderLayout(0, 0));
JPanel panel = new JPanel();
add(panel, BorderLayout.CENTER);
panel.setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
panel.add(scrollPane, BorderLayout.CENTER);
tp = new JTextPane();
tp.setEditable(false);
scrollPane.setViewportView(tp);
for (int i = 0; i < 20; i++) {
JLabel lbl = new JLabel("AAAA ");
lbl.setOpaque(true);
lbl.setBorder(BorderFactory.createLineBorder(Color.black, 1));
tp.insertComponent(lbl);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("GoBoard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JTextPaneExample());
frame.setPreferredSize(new Dimension(400, 400));
frame.pack();
frame.setVisible(true);
}
}
Hinzufügen der 'JTextPane' zu einem Container mit einem' BorderLayout' und dann das Hinzufügen zu dem 'JScrollPane'" sollte "die gewünschte Wirkung (zumindest hat es für mich in der Vergangenheit) – MadProgrammer
Ich wäre gespannt zu sehen Ihre endgültige Lösung. Bitte posten Sie im Forum. Ich habe noch nie einen Layout-Manager in einem JTextPanel gesehen. Wenn Sie einen Layout-Manager in einem JTextPane verwenden, frage ich mich, warum Sie überhaupt ein JTextPane verwenden. Scheint wie eine seltsame Lösung für mich. – camickr
@MadProgrammer, Ich denke, ich bin auf dieser Frage zu Mittag essen. Ich verstehe die Antwort oder deinen Vorschlag nicht. Ich habe deinen Ansatz benutzt, um "in der Vergangenheit" zu "verhindern". Siehe [Kein Umbruchtext] (https://tips4java.wordpress.com/2009/01/25/no-wrap-text-pane/). Wenn ich meinen Vorschlag (der umschließt) verwenden und dann Ihren Vorschlag hinzufügen, gibt es kein Wrapping. – camickr