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:
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);
}
}