У меня есть рамка со столом, combobox, я хочу заполнить таблицу данными из базы данных с помощью combobox, но если я использую элемент itemlistener, я не вижу таблицу, без itemlistener и String sql="select * from Arlista"
то я вижу таблицу с данными. (combob = ComboBox)Я не вижу свою таблицу
редактировать: теперь я получаю сообщение об ошибке на главный «„статический“разрешено только в постоянных объявлениях переменных Изменявших
public static class TableFromDatabase extends JFrame
{ Vector columnNames = new Vector();
Vector data = new Vector();
String [] asd={"Arlista"};
JComboBox combob=new JComboBox(asd);
String tesztvalt2;
public TableFromDatabase() {
combob.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e){
tesztvalt2=(combob.getSelectedItem()).toString();
if (e.getItem().equals(tesztvalt2)) {
try {
String url="jdbc:sqlserver://FARKAS-PC;databaseName=Mozi;integratedSecurity=true;";
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driver);
Connection connection = DriverManager.getConnection(url);
String sql = "Select * from "+tesztvalt2+"";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
for (int i = 1; i <= columns; i++)
{
columnNames.addElement(md.getColumnName(i));
}
while (rs.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i));
}
data.addElement(row);
}
rs.close();
stmt.close();
connection.close();
}
catch(Exception ex)
{
System.out.println(ex);
}
JTable table = new JTable(data, columnNames)
{
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);
if (o != null)
{
return o.getClass();
}
}
return Object.class;
}
};
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
JPanel buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
JPanel panel = (JPanel)getContentPane();
panel.add(buttonPanel, BorderLayout.SOUTH);
panel.revalidate();
panel.repaint();
}
}
public static void main(String[] args)
{
TableFromDatabase frame = new TableFromDatabase();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
frame.pack();
}
});
}
}