Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 37

Вывод полей БД в таблицу при нажатии кнопки

08.12.2014, 16:03. Показов 2582. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
собственно сама таблица, там установлен слушатель на кнопку search от которой я хочу чтобы при ее нажатии выводились нужные строки из БД в мою таблицу.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
public class TableMain extends JFrame{
    private  TableModel tm;
    JTextField nameField;
    JTextField dateField;
    
    public TableMain() throws ClassNotFoundException, SQLException  {
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        tm = new TableModel();
        JTable table = new JTable(tm);
        getContentPane().add(new JScrollPane(table));
        JButton search = new JButton("Search");
        JButton remove = new JButton("Delete");
        JButton clear = new JButton("Clear");
        JPanel jpButtons = new JPanel();
        jpButtons.add(search);
        jpButtons.add(remove);
        jpButtons.add(clear);
        
        getContentPane().add(jpButtons, "South");
        
        nameField = new JTextField(20);
        dateField = new JTextField(5);
        JLabel jlabel = new JLabel("Search :");
        JPanel jpTextField = new JPanel();
        jpTextField.add(jlabel);
        jpTextField.add(nameField);
        jpTextField.add(dateField);
        
        
        getContentPane().add(jpTextField,"North");
        
        
        
        remove.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                tm.deleteRow();
             }
        });
        // хочу чтобы при нажатии на кнопку search выводились нужные строки из БД
        search.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                
                if(nameField.getText().trim().length()>0){}
                  
            }
        });
        
        clear.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
              tm.clearAll();
            }
        });
        
        setSize(500, 400);
        setVisible(true);
    }
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        new TableMain();
        
    }
}
модель таблицы

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import javax.swing.table.AbstractTableModel;
public class TableModel extends AbstractTableModel{
     
     List<String> columnNames = Arrays.asList("id","name","year_birth");
     List<Table> data = new ArrayList<>();
     ArrayList<String[]> datatemp;
     Connection conn;
     Table table;
      
     public TableModel() throws ClassNotFoundException, SQLException{
         ConnectJdbc connJ = new ConnectJdbc();
         conn = connJ.getConnection();
         PreparedStatement ps = conn.prepareStatement("SELECT * FROM testBD.new_table");
         
         ResultSet rs = ps.executeQuery();
         while(rs.next()){
           table = new Table(); 
           table.setId_name(rs.getString("id_name"));
           table.setName(rs.getString("name"));
           table.setDate_birth(rs.getString("date_birth"));
          data.add(table);
      }
     }
          
     public void search() throws SQLException, ClassNotFoundException{
        
        
         datatemp = new ArrayList<>();
            for (int i = 0; i < data.size(); i++) {
             datatemp.add(new String[]{data.get(i).getId_name(),data.get(i).getName(),
             data.get(i).getDate_birth()});
         }
           
    } 
 @Override
    public int getRowCount() {
        return data.size();
    }
    @Override
    public int getColumnCount() {
        return columnNames.size();
    }
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
       return datatemp.get(rowIndex)[columnIndex];
    }
    @Override
    public String getColumnName(int column) {
        return columnNames.get(column);
    }
    
 
    public void setValueAt(String[] data) {
//        this.data.add(data);
        this.fireTableDataChanged();
    }
    
    
    
    public void deleteRow(){
      
      data.remove(getRowCount()-1);
      this.fireTableDataChanged();
    }
    public void clearAll(){
      data.clear();
      this.fireTableDataChanged();
    }
    
}
соединение с базой

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 @Override
    public int getRowCount() {
        return data.size();
    }
    @Override
    public int getColumnCount() {
        return columnNames.size();
    }
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
       return datatemp.get(rowIndex)[columnIndex];
    }
    @Override
    public String getColumnName(int column) {
        return columnNames.get(column);
    }
    
 
    public void setValueAt(String[] data) {
//        this.data.add(data);
        this.fireTableDataChanged();
    }
    
    
    
    public void deleteRow(){
      
      data.remove(getRowCount()-1);
      this.fireTableDataChanged();
    }
    public void clearAll(){
      data.clear();
      this.fireTableDataChanged();
    }
    
    
    
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Table {
  
  private String id_name;
  private String name;
  private String date_birth;
  
    public String getId_name() {
        return id_name;
    }
    public void setId_name(String id_name) {
        this.id_name = id_name;
    }
    public String getName() {
        return name;
    }
    public String getDate_birth() {
        return date_birth;
    }
    public void setDate_birth(String date_birth) {
        this.date_birth = date_birth;
    }
    public void setName(String name) {
        this.name = name;
    }
  
  
}
У самого не получается как я понимаю по такой причине: когда вызываю модель таблицы, то создается эта самая таблица, но она пустая так данные datatemp заполняются после вызова метода search( ). как решить эту проблемку
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2014, 16:03
Ответы с готовыми решениями:

Добавление полей в форме при нажатии кнопки
Здравствуйте! Не так давно здесь на форуме поднимал тему, результатом которой и явился новый вопрос. Суть: нужно создать похожую форму...

Увеличение размеров полей ввода при нажатии кнопки
При нажатии на первую кнопку на форму добавляется одна кнопка или поле ввода, а при нажатии на вторую каждое поле должно увеличиваться по...

Как реализовать в Access добавление группы полей при нажатии кнопки?
Ситуация. Есть форма &quot;Акты&quot;. Данные из нее попадают в таблицу &quot;Акты&quot;. В Актах содержится номер акта, дата, ....., Услуга, Стоимость...

3
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
09.12.2014, 22:46
Так у тебя таблица в базе создана или нет?
И 2 после команд в скл надо прописывать ";" - в этом я до конца не уверен.
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 37
11.12.2014, 17:30  [ТС]
таблица в базе mysql
0
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
11.12.2014, 17:39
Java
1
2
3
 Statement st = (Statement) con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                        ResultSet.CONCUR_UPDATABLE);
            ResultSet rez = (ResultSet) st.executeQuery("Select * from my_universaty");
Вот кусочек с моей работы. Не то передаешь в createst... and execute....Аналогия выше.
Этот код с базой derby работает , а вот с mysql ?Ща узнаем)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2014, 17:39
Помогаю со студенческими работами здесь

Как при нажатии кнопки добавить таблицу?
Плиз помогите как при нажатии кнопки добавить таблицу Заранее благодарю

Как сделать, чтобы при нажатии кнопки в форме, добавлялось еще несколько полей?
Мне нужно решить систему уравнений, произвольного количества. И еще вопросик, как сделать форму адаптивной?

Подключить таблицу при нажатии кнопки методом ajax
День добрый, подскажите с решением. Есть БД и две таблицы table1 и table2, при нажатии кнопки1 выводиться table1, при нажатии кнопки2...

Внесение данных с формы в таблицу при нажатии кнопки
Добрый вечер, прошу помочь с задачей. Есть форма &quot;вопросы&quot;, в ней вопросы и 2 кнопки &quot;да&quot; и &quot;нет&quot; нужно чтоб при...

Как реализовать в Access вывод скрытых полей при нажатии на кнопку?
Есть форма, на ней есть видимые и некоторые скрытые поля. Необходимо сделать так чтобы при нажатии на кнопку&quot;добавить запись&quot; эти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru