Я делаю менеджер баз данных, который показывает вам JTable со всеми данными таблицы. Идея состоит в том, чтобы с левой стороны был JList с именами таблиц, где вы можете выбрать таблицу для визуализации.
Итак, у меня есть класс, в котором я управляю всеми данными таблицы, и еще один класс для JList.
Класс JList происходит от JPanel, и я создал метод getInstance (), чтобы я мог просто создать один экземпляр JList. У меня также есть метод getSelectedValue (), который в основном вызывается в классе JTable для отображения информации о выбранной таблице.
Но при этом у меня возникают проблемы, я отлаживаю и получаю сообщение об ошибке в конструкторе JList, здесь код:
public class DatabaseJList extends JPanel {
private static DatabaseJList instance = null;
private static DefaultListModel listModel = new DefaultListModel();
private static JList list;
public DatabaseJList() {
setLayout(new BorderLayout());
model = new DefaultListModel();
list = new JList(model);
JScrollPane pane = new JScrollPane(list);
Vector<String> vector = new Vector(DatabaseTableManagers.getInstance().getTableNames());
for( int i=0; i<vector.size() ; i ++ )
{
String string = vector.elementAt(i);
model.addElement(string);
}
add(pane, BorderLayout.NORTH);
}
public Object getSelectedObject() {
return list.getSelectedValue();
}
public void setSelectedObject(String str)
{
list.setSelectedValue(str, true);
}
public static DatabaseJList getInstance()
{
if (instance == null)
{
instance = new DatabaseJList();
}
return instance;
}
Когда метод getInstance вызывается впервые, и он переходит к выполнению «new DatabaseJList ();» это идет к конструктору и останавливается, меньше того, что я вижу с моими плохими знаниями отладки. Есть идеи? Спасибо всем;)