У меня есть текстовое поле, которое позволяет пользователям помещать запросы типа типа с идеей, что при нажатии кнопки результат оператора select будет показан в JTable. Я не получаю никаких ошибок, но также ничего не отображается в текстовой панели при нажатии кнопки. У меня есть ниже:Как заполнить JTable из базы данных при событии кнопки
public class Console {
String myquery="";
private JFrame frame;
private JTextField textField;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Console window = new Console();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Console() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 950, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea textAreaQuery = new JTextArea();
JTable table_ResQues = new JTable();
JButton btnNewButton = new JButton("Execute");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String connectDB = "jdbc:ucanaccess:///Users/sebastianzeki/Documents/PhysJava/Physiology.mdb;";
System.out.println("Connection To Database Made");
Connection conn = null;
try {
conn = DriverManager.getConnection(connectDB);
} catch (SQLException e1) {
e1.printStackTrace();
}
Statement st = null;
try {
st = conn.createStatement();
} catch (SQLException e1) {
e1.printStackTrace();
}
myquery=textAreaQuery.getText();
String stg2 = "Select "+myquery;
ResultSet rs = null;
try {
rs = st.executeQuery(stg2);
table_ResQues.setModel(getDataFromDatabase);
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
и код для построения модели:
public TableModel getDataFromDatabase()
{
DefaultTableModel model = new DefaultTableModel(5, 5);
model.setValueAt("Hard", 0, 0);
model.setValueAt("Coded", 1, 1);
model.setValueAt("Data", 2, 2);
return model;
}
}
Невозможно определить из этого кода, будут ли отображаться ваша таблица, текстовая область и т. Д. Кроме того, не используйте 'Vector' – pvg
Они отображаются только не заполненными –
', но и ничего не отображается в текстовой области' - я предполагаю, что вы имеете в виду «JTable». Основной код выглядит разумным. Вы используете метод setModel (...) 'для обновления таблицы, которая правильна, если таблица добавлена в JScrollPane и scrollPane, добавленную в фрейм. Поэтому, полагая, что ResultSetMetaData и ResultSet действительно возвращают некоторые данные, он должен работать. – camickr