Mehrere Textfarben in einer Tabellenzell

Status
Nicht offen für weitere Antworten.
B

BliZZ

Gast
Hallo,

da die JTable als Zelle ein JLabel rendert wäre doch das beste ich würde von JTextField oder JTextPane erben.

Beide Komponenten bieten Methoden zum Abfragen/Setzen von selektiertem Text mit Farben. Wobei JTextPane noch MultiLine-fähig ist was optimal wäre, was meint Ihr?
 

Tobias

Top Contributor
Die einfachste Lösung wäre sicher das Einfärben des Textes mittels HTML-Font-Tags. Wobei ich das nie getestet habe, ist nur so eine Idee. Ansonsten klingt der Ansatz vernünftig, Die API habe ich mir nicht angeschaut.

mpG
Tobias
 
B

BliZZ

Gast
Tobias hat gesagt.:
Die einfachste Lösung wäre sicher das Einfärben des Textes mittels HTML-Font-Tags. Wobei ich das nie getestet habe, ist nur so eine Idee. Ansonsten klingt der Ansatz vernünftig, Die API habe ich mir nicht angeschaut.

mpG
Tobias
ich kann mir nicht vorstellen wie das mit JLabel gehen könnte, da es ja keine Methoden gibt um den selektierten Text zu erhalten. Und das ganze selber zu implementieren ich weiß net, wenns das das JTextField schon gibt... was meinen andere denn?
 

Tobias

Top Contributor
Das mit dem selektierten Text hab ich überlesen. Da wirst du wohl nen eigenen TableCellRenderer brauchen.

mpG
Tobias
 
B

BliZZ

Gast
Tobias hat gesagt.:
Das mit dem selektierten Text hab ich überlesen. Da wirst du wohl nen eigenen TableCellRenderer brauchen.
mpG
Tobias
JTextPane ist multiline dank setLineWrap(true) richtig? wo sehe ich das JEditorPane oder JTextPane multiline ist? eigentlich sollte ich von JTextComponent ableiten den cellrenderer, denn die methoden von JTextPane/JEditorPane benötige ich ja nicht...
 
B

BliZZ

Gast
komisch habe ich mich verguckt es hat jemand geantwortet :D

Hallo André, die Datei existiert nicht mehr, könntest du sie nochmals hochladen?
 

BliZZ

Mitglied
Danke André,

jetzt hab ich doch ein paar Fragen:

1.) wenn ich von einer Zelle in eine andere Zelle hovere mit dem mouse zeiger, dann springt der Text in der Zelle immer von links oben nach unten in die Mitte der Zelle. Warum das?

2.) Sollte der Editor nicht von der JTextPane sein anstatt JTextField?
 

André Uhres

Top Contributor
Im Beispiel muss der Editor lediglich selektieren können, deshalb genügt ein JTextField.
"mouseMoved" macht einen "table.editCellAt" damit man den Text gleich selektieren kann.
Deswegen "springt" der Text ein wenig.
 

BliZZ

Mitglied
André Uhres hat gesagt.:
Im Beispiel muss der Editor lediglich selektieren können, deshalb genügt ein JTextField.
"mouseMoved" macht einen "table.editCellAt" damit man den Text gleich selektieren kann.
Deswegen "springt" der Text ein wenig.

Ok das springen habe ich bekomme indem ich Code auskommentierte ;-)

Was ich aber eigentlich meinte ist, wen ich Text eingebe, dann findet diese Eingabe immer in der Mitter der Zeilenhöhe statt obwohl die Zelle vllt. nur ein Wort hat sprich die weitere Eingabe von Text müsste links oben statt finden. Du verstehst?

so:
b0m66yc8yoszs5uhy.png
 

BliZZ

Mitglied
André Uhres hat gesagt.:
Dein Vorschlag, eine JTextPane als Editor zu benutzen, würde dieses Problem natürlich lösen.

der Konstruktor von DefaultCellEditor will aber einen der 3 Objekte:

Code:
DefaultCellEditor(JCheckBox checkBox)
          Constructs a DefaultCellEditor object that uses a check box.
DefaultCellEditor(JComboBox comboBox)
          Constructs a DefaultCellEditor object that uses a combo box.
DefaultCellEditor(JTextField textField)
          Constructs a DefaultCellEditor that uses a text field.

da ist keine JTextPane dabei

Code:
public TableStringEditor()
        {
            super(new JTextPane());
geht somit net... weißt du wie man das löst?
 

André Uhres

Top Contributor
BliZZ hat gesagt.:
ok man könnte vom AbstractCellEditor ableiten, aber dann hätte ich ja einige Methoden nicht
Du musst zusätzlich TableCellEditor implementieren. Etwa so:
Code:
   class TableStringEditor extends AbstractCellEditor implements TableCellEditor{
...
        private JTextComponent field;
        public TableStringEditor() {
            field = new JTextPane();
            field.setMargin(new Insets(0, 0, 0, 0));
            field.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {
                    removeHighlights(field);
                }
            });
        } 
...
        @Override
        public boolean stopCellEditing() {
            boolean retValue;
//            JTextField field = (JTextField) editorComponent;
            int start = field.getSelectionStart();
...
        }
        @Override
        public Component getTableCellEditorComponent(final JTable table, final Object value, final boolean isSelected, final int row, final int column) {
//            JTextField field = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column);
            field.setText(value.toString()); 
            String key = String.valueOf(row) + ";" + String.valueOf(column);
...
        }
        @Override
        public Object getCellEditorValue() {
            return field.getText(); 
        }
    }
 

BliZZ

Mitglied
danke dir das funzt erstmal. Nun frage ich mich wenn ich text selektiert habe und einen "Einfärbebutton" drücke wie bekomme ich die Tabellenzelle raus, in der der Text selektiert ist so dass ich sagen kann.

selektierteZelle.getStartOfSelectedText() etc...
Code:
int selectedColumn = table.getSelectedColumn();
        	   int selectedRow = table.getSelectedRow();
das bringt mich hier net weiter...

man müsste während ich auf den Einfärbebutton drücken Zugriff auf genau das Zellobjekt haben wo die Markierung ist.

Hast du mir da einen Tip?
 

André Uhres

Top Contributor
BliZZ hat gesagt.:
wenn ich text selektiert habe und einen "Einfärbebutton" drücke wie bekomme ich die Tabellenzelle raus, in der der Text selektiert ist
Im Beispiel wird das über die "colormap" gelöst. Du kannst diese "colormap" natürlich auch
in eine Ableitung von JTable einbauen, mit entsprechenden Methoden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M effizient mehrere BufferedImage in eines schreiben AWT, Swing, JavaFX & SWT 6
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
T Swing Tetraeder - mehrere Punkte verbinden? - Ansätze gesucht AWT, Swing, JavaFX & SWT 2
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 29
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 0
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
J JavaFX - mehrere Views, Model durchreichen AWT, Swing, JavaFX & SWT 10
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
F JavaFX Mehrere Stages "managen" AWT, Swing, JavaFX & SWT 2
r4w Changelistener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
C Java FX Warnmeldung: Mehrere Fonts gehören derselben Familie und Stil AWT, Swing, JavaFX & SWT 2
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
KaffeeFan mehrere JTextField durchlaufen AWT, Swing, JavaFX & SWT 4
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
G JavaFX Menü und mehrere Scenes AWT, Swing, JavaFX & SWT 16
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
D Mehrere RadiButtons auswählar AWT, Swing, JavaFX & SWT 3
P Swing JTable mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
J Mehrere Hyperlinks "stilvoll" darstellen. AWT, Swing, JavaFX & SWT 1
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
S JavaFX Mehrere TreeTableView's synchron scrollen AWT, Swing, JavaFX & SWT 0
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
J Rahmen um mehrere GUI Einzelteile AWT, Swing, JavaFX & SWT 2
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
M Mehrere Fenster innerhalb einer Application AWT, Swing, JavaFX & SWT 3
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
T [LWJGL] mehrere Displays? AWT, Swing, JavaFX & SWT 19
SexyPenny90 Mehrere Fenster AWT, Swing, JavaFX & SWT 2
M Handling 1 Fenster mehrere Panels AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
O Swing JLabel mehrere Zeilen AWT, Swing, JavaFX & SWT 2
P mehrere Rectangles per JButton AWT, Swing, JavaFX & SWT 9
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
G Mehrere Probleme mit Java's GUI AWT, Swing, JavaFX & SWT 6
G Mehrere Layoutprobleme AWT, Swing, JavaFX & SWT 2
Kenan89 JTable mehrere ListSelections AWT, Swing, JavaFX & SWT 2
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
A mehrere Zeilen in GUi ausgeben AWT, Swing, JavaFX & SWT 2
N Mehrere Tasks nacheinander ausführen AWT, Swing, JavaFX & SWT 7
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
M 2D-Grafik Mehrere Linien (nacheinander) übereinander Zeichnen AWT, Swing, JavaFX & SWT 6
M Mehrere JPanel nacheinander?! AWT, Swing, JavaFX & SWT 11
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
K SWT Mehrere Einträge ins Clipboard legen AWT, Swing, JavaFX & SWT 2
C Swing Ein JFrame mehrere Ansichten AWT, Swing, JavaFX & SWT 8
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
GUI-Programmer JFilechooser, mehrere Datein selektieren und Reihenfolge (2) AWT, Swing, JavaFX & SWT 8
S Mehrere JLists - Wie kennzeichnen? AWT, Swing, JavaFX & SWT 2
S Swing MVC Ein JFrame, mehrere JPanels AWT, Swing, JavaFX & SWT 6
J Mehrere JRadioButtons, aber nur 1 darf ausgewählt sein AWT, Swing, JavaFX & SWT 4
L Swing Mehrere Button die selbe Größe AWT, Swing, JavaFX & SWT 4
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
G mehrere JPanel in ein (vertikales) JScrollPane AWT, Swing, JavaFX & SWT 8
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
GianaSisters Swing jTable - Feldtext soll mehrere Zeilen haben AWT, Swing, JavaFX & SWT 3
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben