JTabbedPane JList Listcellrenderer

Status
Nicht offen für weitere Antworten.

alipecki

Mitglied
Hallo Zusammen,

ich schreibe gerade ein Logviewer, der von einem config.xml file die Filter bekommt, sprich nach den Suchwort in Logfile, dieses Suchwort wird in einer Combobox gespeichert, wird ein Suchwort aus der Combobox gewählt, wird im Logfile danach gesucht und wenn eine Zeile mit dem Suchwort gefunden wird in eine andere Farbe gesetzt.

Ich habe dies soweit realsiert, doch wenn ich ein jtabbedpane mit mehreren tabs habe gibt es probleme.
Angenommen ich habe zwei tabs, wähle das zweite aus, wähle ein suchwort. Dann wird rein gar nichts gefunden, obwohl das Suchwort mehrmals vorkommt.
Wähle ich das erste Tab und wähle eins aus findet er das Suchwort, färbt es auch ein, doch wähle ich nun das zweite Tab so ist es gleich wie das erste Tab. So wie es ausschaut überschreibt er dies, doch ich verstehe nicht was ich falsch mache. Als ich dies noch ohne einfärben mache, klappte das wechseln wunderbar. Das Gefühl beklemmt mich das mit dem Vektor und dessen übergabe an das jlistmodel was falsch funzt.

Ich danke euch vielmals für die Hilfe,

gruss Alex

Also auch für einen zusätzlichen Tipp wäre ich sehr dankbar!!

Anbei ein Teil des Codes, dieser steht im Eventhandler drinnen:
Code:
else if("cmbxFilter".equals(e.getActionCommand()))
{
    int remid = jTabbedPaneLogfile.getSelectedIndex();

    Vector data = new Vector();
    String line="a";
			
    for(int a=0; a<logfilelist.size();a++)
    {
        LogfileEntryVO tempfileentry = (LogfileEntryVO) logfilelist.getElementAt(a);

            if(tempfileentry.getName().equals(jTabbedPaneLogfile.getTitleAt(jTabbedPaneLogfile.getSelectedIndex())))
            {
                fileentry = (LogfileEntryVO) logfilelist.getElementAt(a);
	try
	{
	    r = new BufferedReader(new FileReader(fileentry.getFileName()));
	}
	catch (FileNotFoundException e1) 
	{
	    e1.printStackTrace();
	}
	for(int i=0; i<fileentry.size();i++)
	{
                    LogfileFilterEntryVO tempfilterentry = (LogfileFilterEntryVO) fileentry.getfilterElementAt(i);
	    if(comboBoxFilter.getSelectedItem().toString().equals(tempfilterentry.getFilterName()))
	    {
	        filterentry = tempfilterentry;
                    }
	}
	try
	{
	    while((line=r.readLine())!=null)
	    {
	        if(!(line==null))
	        {
		String csens =  comboBoxFilter.getSelectedItem().toString();
		if (filterentry.getcaseSensitiv().equals("no"))
		{
		    csens.toLowerCase();
		    line.toLowerCase();
		}
		if(line.contains(csens))
		{
		    data.add(new ListElement(line.toString(), Color.RED));
		}
		else
		{
		    data.add(new ListElement(line.toString(), Color.BLACK));
		}
	        }
	    }
	}
	catch (IOException e1) 
	{
	    e1.printStackTrace();
	}
	
                this.jListLogView = new JList(new MyListModel( data )); 
	this.jListLogView.setCellRenderer(new DefaultListCellRenderer() 
	{ 
	    public Component getListCellRendererComponent(JList list, Object value, int index, 
                        boolean isSelected, boolean cellHasFocus) 
	    {
                        Component comp = super.getListCellRendererComponent(
                            list, value, index, isSelected, cellHasFocus);
                        comp.setForeground( ((ListElement ) ((MyListModel) list.getModel()).getListElementAt(
                            index )).getColor()  );
                        return comp; 
	    } 
	});

                this.jTabbedPaneLogfile.remove(remid);
	this.jTabbedPaneLogfile.addTab( fileentry.getName(), null, jListLogView, null);
	JScrollPane scrollPane = new JScrollPane(jListLogView);
	this.jTabbedPaneLogfile.add(fileentry.getName(),scrollPane);
	this.jTabbedPaneLogfile.setSelectedIndex(remid);
    }
}
 

mic_checker

Top Contributor
kannst du bitte mal alles posten oder ist das zu viel ?

So wie es scheint, übernimmt er also die Markierungen etc. aus dem einen Tab ins andere oder ?

Wozu verwendest du genau die JList ?
 

alipecki

Mitglied
Hallo mic_checker,

ja es ist ziemlich viel, die Funktion von dem Teil ist eigentlich, dass nach dem Du einen Tab ausgewählt hast, geschaut wird welcher, dann dieses File gesucht wird in einer Linkedlist (dies entspricht der Klasse Logfileentryvo), dann werden die Daten einglesen und wenn das Suchwort gefunden wird dies dem neuen Vektor übergeben. Die Jlist bette ich in die Jtabbedpane ein, da ich mit jlist ein Model benutzen kann und die Daten manipulieren kann.

Die Markierungen ?, also ich setze ein Suchwort in der Combobox, mit diesem sucht er die Zeilen ab( r.readlinecontais(suchwort)), findet er dies, wird eine vordefinierte Farbe mit gegeben und dies in einem Vektor( new Vector(new Listelement(r.readline, color)) gespeichert, diesen Vektor benutze ich dann mit der Jlist um das ganze darzustellen.

Denn der Codeteil befindet sich in meiner Eventhandler Klasse, kann gut sein dass ich ein durcheinander habe, denn versuche immer noch zu fest prozedural zu schreiben, ja hauc mich,... :autsch:

:oops:
hmm kann ich es dir irgendwo sonst hinstellen damit du mal reingucken kannst?
Wäre wirklich mega froh, denn komme an diesem Punkt nicht weiter..

gruss und danke Alex
 

alipecki

Mitglied
Hallo mic_checker,
dies ist dort wo ich nicht mehr weiterkomme und ich eigentlich dachte mit dem abgebildeten code zu bewerkstelligen. ich wähle aus der combobox einen Filter(Suchwort) aus, nun wird ja der eventhandler aufgerufen und dort, frage ich nun ab, wie das Suchwort heisst, welche jtabbedpane tab ausgewählt ist. Nun suche ich das File, welches in der tab(->jlist) abgebildet wurde, suche dann den dazugehörigen Filter, welcher ausgewählt wurde, dann lese ich in diesem Filter aus, ob er casesensitive sein soll und in welche Farbe er die Zeile verändern soll. Dann muss ja die jlist aktualisiert werden, ich machte dies mal so, doch nun fügte er mir immer eine neue jtabbedpane ein, dann habe ich diese gelöscht und neuhinzugefügt an der stelle, welche er als letztes ausgewählt war.

Habe ich nun einen falschen Ansatz gewählt?

gruss und danke Alex
 

alipecki

Mitglied
Ich habe es lösen können.
Der Fehler lag darin, dass ich die Tabbedpane zu viele male hinzugefügt habe und dies in diversen Varianten.
Api's sollte man auch lesen können. :oops:
Dies gab dan auch nürtlich ganz komisches Verhalten.

@mic_checker

Wenn Du mal den Code anschauen könntest,wäre ich sehr froh, natürlich nur dann wenn Du mal Zeit hast.
Könntest Du mir bitte dann noch einige Tipps geben und auf was ich unbedingt achten sollte, vielen Dank :D
Würde dir also auch ein Weizen zahlen oder so..., dass es nicht ganz vergebens ist...

Fehler:
Code:
    this.jTabbedPaneLogfile.removeTabAt(remid);
    //hier setze ich die scrollpane zu jlist
    JScrollPane scrollPane = new JScrollPane(jListLogView);
    //die jtabbedpane bekommt den namen und die scrollpane
    this.jTabbedPaneLogfile.add(fileentry.getName(),scrollPane); 
    this.jTabbedPaneLogfile.insertTab( fileentry.getName(), null, jListLogView, fileentry.getName(), remid);
    this.jTabbedPaneLogfile.add( jListLogView );
    this.jTabbedPaneLogfile.setSelectedIndex(remid);
    this.jTabbedPaneLogfile.revalidate();

Lösung:
Code:
		this.jTabbedPaneLogfile.removeTabAt(remid);
		JScrollPane scrollPane = new JScrollPane(jListLogView);
		this.jTabbedPaneLogfile.insertTab( fileentry.getName(), null, scrollPane, null, remid);
		this.jTabbedPaneLogfile.setSelectedIndex(remid);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
I JTabbedPane mit DnD, [x]-Schaltfläche, [+]-Schaltfläche usw. AWT, Swing, JavaFX & SWT 1
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
D JTabbedPane GUI Experimente AWT, Swing, JavaFX & SWT 4
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
B StateChangeListener auf JTabbedPane AWT, Swing, JavaFX & SWT 5
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
F JTabbedPane bestimmten Tab ansprechen AWT, Swing, JavaFX & SWT 13
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
BRoll JTabbedPane setTitleAt OutOfBoundsExc AWT, Swing, JavaFX & SWT 4
K JTabbedPane Tab Markierung / Selektion AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
L JTabbedPane Closebutton integrieren AWT, Swing, JavaFX & SWT 6
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
K Swing JTabbedPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 19
B Swing JTabbedPane in JApplet -> Reiter bei Aktualisation mehrmals zu sehen AWT, Swing, JavaFX & SWT 3
M JTabbedPane -> setSelectedIndex funzt nicht AWT, Swing, JavaFX & SWT 3
D Bestimmtes JPanel innerhalb eines JTabbedPane ansprechen AWT, Swing, JavaFX & SWT 2
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
hdi Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 2
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S JTabbedPane Problem AWT, Swing, JavaFX & SWT 3
S JTabbedPane AWT, Swing, JavaFX & SWT 4
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
G JTabbedPane - Länge der Reiter beeinflussen? AWT, Swing, JavaFX & SWT 9
G Swing JTabbedPane Was für ein Border wird da um die Tabs gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Komponentengröße in JTabbedPane AWT, Swing, JavaFX & SWT 7
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
M CloseButton bei JTabbedPane AWT, Swing, JavaFX & SWT 4
P Swing JTabbedPane mit JButton einen anderen Tab anzeigen AWT, Swing, JavaFX & SWT 9
D JTabbedPane zentrieren AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
Mike90 JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 17
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Swing Tab in JTabbedPane AWT, Swing, JavaFX & SWT 5
A JFrame > JTabbedPane > JPanel > addKeyListener AWT, Swing, JavaFX & SWT 18
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
H Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 9
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
S Border von JTabbedpane-Tab? AWT, Swing, JavaFX & SWT 3
M JTabbedPane Docable? AWT, Swing, JavaFX & SWT 3
L Swing JTabbedPane - Index vom Tab AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
F Borders von JTabbedPane und JScrollPane AWT, Swing, JavaFX & SWT 5
W JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 4
G Swing JTabbedPane vergrößern AWT, Swing, JavaFX & SWT 2
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
D Tabs von JTabbedPane stylen AWT, Swing, JavaFX & SWT 6
U JTabbedPane: Layout-Probleme bei addTab zur Laufzeit AWT, Swing, JavaFX & SWT 2
1 JTabbedPane Tab ausdehnen AWT, Swing, JavaFX & SWT 3
F Swing JTabbedPane: Zur Laufzeit die Tabreihenfolge ändern AWT, Swing, JavaFX & SWT 2
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
D Swing Probleme bei mit JTabbedPane.getChildren() AWT, Swing, JavaFX & SWT 4
I Swing Randnutzung bei JTabbedPane.LEFT AWT, Swing, JavaFX & SWT 2
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
P JTabbedPane und fill? AWT, Swing, JavaFX & SWT 2
D Swing mehrere JTable in separaten Tabs einer JTabbedPane AWT, Swing, JavaFX & SWT 2
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
R JTabbedPane Selektion verfolgen? AWT, Swing, JavaFX & SWT 2
byte JTabbedPane - Insets entfernen AWT, Swing, JavaFX & SWT 7
S JTabbedPane child setBounds AWT, Swing, JavaFX & SWT 4
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
V Extended JTabbedPane AWT, Swing, JavaFX & SWT 7
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
A JTabbedPane Tabwechsel rausfinden AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
T Wie aktualisiere ich die Contents einer JTabbedPane? AWT, Swing, JavaFX & SWT 3
G JTabbedPane zentiert alles AWT, Swing, JavaFX & SWT 3
P Schließen-Button bei JTabbedPane? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben