Hallo,
ich habe derzeit ein Problem und ich finde keinen Ansatz wie ich es lösen kann,
da ich auch nur Anfängerkenntnisse habe.
Mein Projekt ist ein Verwaltungsprogramm und ich möchte meine eigene Suchfunktion
erstellen und mir ist durch Zufall aufgefallen, dass nachdem ich ein Element aus
der Tabelle auswähle, das Fenster schließe und wieder öffne und was anderes
ankliche, dann wird nichts mehr angezeigt (siehe Bilder).

Ich weiß nicht woran es liegen könnte und brauche Hilfe.
Das Fenster wird über ein Button geöffnet und man muss noch diesen Code hinzufügen
wenn man es testen möchte:
Suchen s = new Suchen(MediathekMain.m, "Eintrag suchen");
s.setSize(1100,700);
Aktuell sieht mein Code so aus:
ich habe derzeit ein Problem und ich finde keinen Ansatz wie ich es lösen kann,
da ich auch nur Anfängerkenntnisse habe.
Mein Projekt ist ein Verwaltungsprogramm und ich möchte meine eigene Suchfunktion
erstellen und mir ist durch Zufall aufgefallen, dass nachdem ich ein Element aus
der Tabelle auswähle, das Fenster schließe und wieder öffne und was anderes
ankliche, dann wird nichts mehr angezeigt (siehe Bilder).

Ich weiß nicht woran es liegen könnte und brauche Hilfe.
Das Fenster wird über ein Button geöffnet und man muss noch diesen Code hinzufügen
wenn man es testen möchte:
Suchen s = new Suchen(MediathekMain.m, "Eintrag suchen");
s.setSize(1100,700);
Aktuell sieht mein Code so aus:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.*;
import java.util.*;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableModelEvent;
import javax.swing.plaf.basic.BasicTableUI;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
public class Suchen extends JDialog {
static JTabbedPane tabbedPane = new JTabbedPane();
static JPanel panel_suchen,panel_tabelle,panel_filme = new JPanel(),panel_filme2 = new JPanel(),panel_filme3 = new JPanel();
static DefaultTableModel model_kat_filme;
static JTable tabelle_kat_filme;
JScrollPane scroll_kat_filme;
static String jahr_auswahl;
static JTextField feld_titel,feld_jahr1,feld_jahr2,feld_jahr3,feld_jahr4;
JRadioButton radio_jahr1,radio_jahr2,radio_jahr3,radio_jahr4;
ButtonGroup jahr_grp;
String kat_filme_spalte[] = {"Auswahl"},kat_filme_daten[][],
jahr_wert[]={"1900","1901","1902","1903","1904","1905","1906","1907","1908","1909","1910","1911","1912","1913",
"1914","1915","1916","1917","1918","1919","1920","1921","1922","1923","1924","1925","1926","1927","1928","1929","1930",
"1931","1932","1933","1934","1935","1936","1937","1938","1939","1940","1941","1942","1943","1944","1945","1946","1947",
"1948","1949","1950","1951","1952","1953","1954","1955","1956","1957","1958","1959","1960","1961","1962","1963","1964",
"1965","1966","1967","1968","1969","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981",
"1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998",
"1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015",
"2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032",
"2033","2034","2035","2036","2037","2038","2039","2040"};
static JComboBox box_jahr;
static JLabel label,ergebnis;
JButton suchen_beenden;
static JButton button_suchen,eintrag_anzeigen;
static int wert_index=0,index_land=0,wert_jahr=0,wert_jahr1=0,wert_jahr2=0,zahl=0,anzahl=0,anzahl2,breite=1100,hoehe=700;
Suchen(JFrame parent, String title) {
super(parent, title);
//setLocation(MediathekMain.m.getLocation().x+((MediathekMain.m.getWidth()-breite)/2),MediathekMain.m.getLocation().y+((MediathekMain.m.getHeight()-hoehe)/2));
setLocation(300,150);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
//MediathekMain.m.fenster_suchen = false;
}
});
panel_suchen = new JPanel();
panel_suchen.setLayout(null);
// Tabs anzeigen
// Tab Filme
String tab_filme = "Filme";
panel_filme.setLayout(null);
panel_filme.setBackground(new Color(238,238,238));
// Panel zur Kategorieauswahl
panel_filme2.setLayout(null);
panel_filme2.setBackground(new Color(238,100,238));
panel_filme2.setBounds(5,5,130,113);
// Panel für die Inhalte der jeweiligen Kategorie
panel_filme3.setLayout(null);
panel_filme3.setBackground(new Color(238,238,238));
panel_filme3.setBounds(170,5,530,113);
panel_filme.add(panel_filme2);
panel_filme.add(panel_filme3);
// Tabelle
model_kat_filme = new DefaultTableModel(kat_filme_daten, kat_filme_spalte) {
public boolean isCellEditable(int row, int col) {
return false;
}
};
tabelle_kat_filme = new JTable(model_kat_filme);
tabelle_kat_filme.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
tabelle_kat_filme.setShowGrid(false);
// Spalten von Tabelle nicht verschiebbar
tabelle_kat_filme.getTableHeader().setReorderingAllowed(false);
tabelle_kat_filme.setTableHeader(null);
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Titel"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Jahr"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Genre"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Land"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Regisseur"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Schauspieler"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Medium"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Freigabe"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Verpackung"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Label"});
model_kat_filme.insertRow(tabelle_kat_filme.getRowCount(),new Object[]{"Sonstiges"});
ListSelectionModel selectionModel = tabelle_kat_filme.getSelectionModel();
selectionModel.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int row = tabelle_kat_filme.getSelectedRow();
panel_filme3.removeAll();
if(row == 0) {
KritTitel();
}
if(row == 1) {
KritJahr();
}
panel_filme3.validate();
panel_filme3.repaint();
}
}
});
scroll_kat_filme = new JScrollPane(tabelle_kat_filme);
scroll_kat_filme.setBounds(0,0,130,113);
panel_filme2.add(scroll_kat_filme);
tabbedPane.addTab(tab_filme, panel_filme);
tabbedPane.setBounds(10,10,710,151);
//tabbedPane.addChangeListener(new TabSuchenListener());
button_suchen = new JButton("Suche starten");
//button_suchen.addActionListener(new SuchenListener());
button_suchen.setBounds(735,100,120,20);
panel_tabelle = new JPanel();
panel_tabelle.setLayout(null);
panel_tabelle.setBounds(10,179,1063,443);
panel_tabelle.setBackground(new Color(238,238,238));
//panel_tabelle.setBorder(new EtchedBorder());
ergebnis = new JLabel("Ergebnis:");
ergebnis.setBounds(10,635,200,15);
eintrag_anzeigen = new JButton("Eintrag anzeigen");
eintrag_anzeigen.setBounds(330,632,120,20);
eintrag_anzeigen.setEnabled(false);
eintrag_anzeigen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
suchen_beenden = new JButton("Schliessen");
suchen_beenden.setBounds(985,632,90,20);
suchen_beenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
//MediathekMain.m.fenster_suchen = false;
}
});
panel_suchen.add(tabbedPane);
panel_suchen.add(button_suchen);
panel_suchen.add(panel_tabelle);
panel_suchen.add(ergebnis);
panel_suchen.add(eintrag_anzeigen);
panel_suchen.add(suchen_beenden);
getContentPane().add(panel_suchen);
pack();
setVisible(true);
}
static void KritTitel() {
JLabel label_suchen_nach = new JLabel("Suchen nach:");
label_suchen_nach.setBounds(10,38,65,15);
feld_titel = new JTextField();
feld_titel.setBounds(85,35,200,20);
if(TabSuchenListener.tab == 0) {
panel_filme3.add(label_suchen_nach);
panel_filme3.add(feld_titel);
}
}
public void KritJahr() {
radio_jahr1 = new JRadioButton("Genaues Jahr:");
radio_jahr1.setBounds(10,10,100,15);
radio_jahr1.addActionListener(new JahrListener());
box_jahr = new JComboBox(jahr_wert);
box_jahr.setBounds(130,7,60,20);
radio_jahr2 = new JRadioButton("Zwischen:");
radio_jahr2.setBounds(10,38,100,15);
radio_jahr2.addActionListener(new JahrListener());
feld_jahr1 = new JTextField();
feld_jahr1.setBounds(130,35,40,20);
JLabel und = new JLabel("und");
und.setBounds(185,38,30,15);
feld_jahr2 = new JTextField();
feld_jahr2.setBounds(220,35,40,20);
radio_jahr3 = new JRadioButton("Alles vor:");
radio_jahr3.setBounds(10,66,110,15);
radio_jahr3.addActionListener(new JahrListener());
feld_jahr3 = new JTextField();
feld_jahr3.setBounds(130,63,40,20);
radio_jahr4 = new JRadioButton("Alles nach:");
radio_jahr4.setBounds(10,94,110,15);
radio_jahr4.addActionListener(new JahrListener());
feld_jahr4 = new JTextField();
feld_jahr4.setBounds(130,91,40,20);
jahr_grp = new ButtonGroup();
jahr_grp.add(radio_jahr1);
jahr_grp.add(radio_jahr2);
jahr_grp.add(radio_jahr3);
jahr_grp.add(radio_jahr4);
jahr_grp.setSelected(radio_jahr1.getModel(),true);
jahr_auswahl = "Genaues Jahr:";
feld_jahr1.setEnabled(false);
feld_jahr2.setEnabled(false);
feld_jahr3.setEnabled(false);
feld_jahr4.setEnabled(false);
if(TabSuchenListener.tab == 0) {
panel_filme3.add(radio_jahr1);
panel_filme3.add(box_jahr);
panel_filme3.add(radio_jahr2);
panel_filme3.add(feld_jahr1);
panel_filme3.add(und);
panel_filme3.add(feld_jahr2);
panel_filme3.add(radio_jahr3);
panel_filme3.add(feld_jahr3);
panel_filme3.add(radio_jahr4);
panel_filme3.add(feld_jahr4);
}
}
public class JahrListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
jahr_auswahl = ""+e.getActionCommand();
if(jahr_auswahl.equals("Genaues Jahr:")) {
box_jahr.setEnabled(true);
feld_jahr1.setEnabled(false);
feld_jahr2.setEnabled(false);
feld_jahr3.setEnabled(false);
feld_jahr4.setEnabled(false);
}
if(jahr_auswahl.equals("Zwischen:")) {
box_jahr.setEnabled(false);
feld_jahr1.setEnabled(true);
feld_jahr2.setEnabled(true);
feld_jahr3.setEnabled(false);
feld_jahr4.setEnabled(false);
}
if(jahr_auswahl.equals("Alles vor:")) {
box_jahr.setEnabled(false);
feld_jahr1.setEnabled(false);
feld_jahr2.setEnabled(false);
feld_jahr3.setEnabled(true);
feld_jahr4.setEnabled(false);
}
if(jahr_auswahl.equals("Alles nach:")) {
box_jahr.setEnabled(false);
feld_jahr1.setEnabled(false);
feld_jahr2.setEnabled(false);
feld_jahr3.setEnabled(false);
feld_jahr4.setEnabled(true);
}
}
}
}