Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import javax.swing.event.TableModelEvent;
- import javax.swing.table.DefaultTableModel;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.Vector;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class JTableWindow extends JFrame{
- private static final String url = "jdbc:mysql://localhost:3306/carsfff";
- private static final String user = "root";
- private static final String password = "root";
- // поля для открытия подключения и получения значенией с Mysql
- private static Connection con;
- private static Statement stmt;
- private static ResultSet rs;
- Vector<Object> vector = new Vector<>();
- UpdateStringInTable updateStringInTable = new UpdateStringInTable();
- JButton btnUpdate = new JButton("Update");
- JButton btnAdd = new JButton("Add");
- JButton btnRemove = new JButton("Remove");
- JButton btnRefresh = new JButton("Refresh");
- JLabel labelID = new JLabel("ID:");
- // размер поля field 5
- JTextField field1 = new JTextField(5);
- JTextField field2 = new JTextField(5);
- JTextField field3 = new JTextField(5);
- JTextField field4 = new JTextField(5);
- JTextField field5 = new JTextField(5);
- JTextField fieldID = new JTextField(2);
- //Объект таблицы
- JTable jTable;
- JTableWindow() {
- //вводим запрос ID в mysql
- addIdInTable();
- //Создаем новый контейнер JFrame
- JFrame jFrame = new JFrame("Mysql V1.87");
- //разммер кнопок
- btnUpdate.setPreferredSize(new Dimension(100, 20));
- btnAdd.setPreferredSize(new Dimension(100, 20));
- btnRemove.setPreferredSize(new Dimension(100, 20));
- btnRefresh.setPreferredSize(new Dimension(100, 20));
- //Устанавливаем диспетчер компоновки
- jFrame.getContentPane().setLayout(new FlowLayout());
- //Устанавливаем размер окна
- jFrame.setSize(580, 470);
- //Устанавливаем завершение программы при закрытии окна
- jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jFrame.add(field1);
- jFrame.add(field2);
- jFrame.add(field3);
- jFrame.add(field4);
- jFrame.add(field5);
- jFrame.add(labelID);
- //Создадим список из сущностей класса ValueInTable
- ArrayList valueInTables = new ArrayList();
- // получаем данные с конструктора ValueInTables
- getArrayListVal(valueInTables);
- //Создадим модель таблицы
- MyTableModel tModel = new MyTableModel(valueInTables);
- // данные изменяются в таблице слушатель на кнопку
- btnUpdate.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- valueInTables.add(new ValueInTable(field1.getText(), field2.getText(),
- Integer.valueOf(field3.getText()), Integer.valueOf(field4.getText()),
- Integer.valueOf(field5.getText()) ) );
- updateStringInTable.updateValues(url, user, password, field1, field2, field3, field4, field5,
- con, stmt, rs, Integer.valueOf(fieldID.getText()) );
- tModel.fireTableDataChanged();
- }
- });
- // данные обновляются в таблице слушатель на кнопку
- btnRefresh.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent ae) {
- // обнуляем JTable
- // jTable.setModel(new DefaultTableModel());
- getArrayListVal(valueInTables);
- tModel.fireTableDataChanged();
- }
- });
- //На основе модели, создадим новую JTable
- jTable = new JTable(tModel);
- //Создаем панель прокрутки и включаем в ее состав нашу таблицу
- JScrollPane jscrlp = new JScrollPane(jTable);
- //Устаналиваем размеры прокручиваемой области
- jTable.setPreferredScrollableViewportSize(new Dimension(550, 200));
- //Добавляем в контейнер нашу панель прокрути и таблицу вместе с ней
- jFrame.getContentPane().add(jscrlp);
- // добавляем кнопку на JFrame
- jFrame.getContentPane().add(labelID);
- jFrame.getContentPane().add(fieldID);
- jFrame.getContentPane().add( btnUpdate);
- jFrame.getContentPane().add( btnRefresh);
- jFrame.getContentPane().add( btnAdd);
- jFrame.getContentPane().add(btnRemove);
- // отображение фрейма по центру
- jFrame.setLocationRelativeTo(null);
- //Отображаем контейнер
- jFrame.setVisible(true);
- }
- //в Vector-лист добавляются значения каждая новая строка по номеру id
- public void conToMysql(int id){
- String query = "SELECT * FROM tbl1 where id=" + "'" + id + "'";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- rs = stmt.executeQuery(query);
- // к-тво всех столбцов в таблице
- int allCol = rs.getMetaData().getColumnCount();
- /*Вывод всей строки таблици из БД в list Vector*/
- while (rs.next()) {
- for (int i = 1; i <= allCol; i++) {
- vector.add(rs.getObject(i));
- }
- }
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- //узнаем к-тво строк в БД
- public int getAllRowsMysql(){
- String query = "SELECT count(*) FROM tbl1";
- int allRows = 0;
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- rs = stmt.executeQuery(query);
- /*Вывод строки таблици*/
- while (rs.next()) {
- allRows = rs.getInt(1);
- }
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- return allRows;
- }
- // метод с соединением и обновлением таблицы
- void addIdInTable(){
- for (int id = 1; id <= getAllRowsMysql(); id++)
- conToMysql(id);
- }
- // получение ячеек таблицы с конструктора ValueInTable
- void getArrayListVal(ArrayList valueInTables){
- for (int val0 = 0, val1 = 1, val2 = 2, val3 = 3, val4 = 4, val5 = 5; val5 < 6 * getAllRowsMysql(); val0 +=6, val1 +=6, val2 +=6, val3 +=6, val4 +=6, val5 +=6 ) {
- valueInTables.add( new ValueInTable(vector.get(val0), vector.get(val1), vector.get(val2),
- vector.get(val3), vector.get(val4), vector.get(val5) ));
- }
- }
- //Функция main, запускающаяся при старте приложения
- public static void main(String[] args) {
- //Создаем фрейм в потоке обработки событий
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- new JTableWindow();
- }
- });
- }
- }
- import javax.swing.*;
- import java.sql.*;
- /**
- * Created by Admin on 21.11.2016.
- */
- public class UpdateStringInTable {
- public void updateValues(String url, String user, String password, JTextField field1, JTextField field2,
- JTextField field3,JTextField field4,JTextField field5,
- Connection con, Statement stmt, ResultSet rs, int fieldId ){
- // поля для обновления значенией в Mysql
- String query1 = "update tbl1 set CODE=" + "'"+ field1.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query2 = "update tbl1 set TYPE=" + "'"+ field2.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query3 = "update tbl1 set QUANTITY=" + "'"+ field3.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query4 = "update tbl1 set PRICE=" + "'"+ field4.getText() +"'" + "where id="+"'"+ fieldId +"'";
- String query5 = "update tbl1 set YEAR=" + "'"+ field5.getText() +"'" + "where id="+"'"+ fieldId +"'";
- try {
- // opening database connection to MySQL server
- con = DriverManager.getConnection(url, user, password);
- // getting Statement object to execute query
- stmt = con.createStatement();
- // executing SELECT query
- stmt.executeUpdate(query1);
- stmt.executeUpdate(query2);
- stmt.executeUpdate(query3);
- stmt.executeUpdate(query4);
- stmt.executeUpdate(query5);
- } catch (SQLException sqlEx) {
- sqlEx.printStackTrace();
- } finally {
- //close connection ,stmt and resultset here
- try { con.close(); } catch(SQLException se) { /*can't do anything */ }
- try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
- try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
- }
- }
- }
- import java.util.ArrayList;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class ValueInTable {
- Object id;
- Object code;
- Object type;
- Object quantity;
- Object price;
- Object year;
- ArrayList<Object> list = new ArrayList<>();
- public ValueInTable(Object id, Object code, Object type, Object quantity, Object price, Object year){
- ArrayList<Object> list = new ArrayList<>();
- this.id = id;
- this.code = code;
- this.type = type;
- this.quantity = quantity;
- this.price = price;
- this.year = year;
- }
- public ValueInTable(Object code, Object type, Object quantity, Object price, Object year){
- this.code = code;
- this.type = type;
- this.quantity = quantity;
- this.price = price;
- this.year = year;
- }
- public Object getId() { return id; }
- public Object getCode(){
- return code;
- }
- public Object getType(){
- return type;
- }
- public Object getQuantity(){
- return quantity;
- }
- public Object getPrice(){
- return price;
- }
- public Object getYear(){
- return year;
- }
- }
- import javax.swing.table.AbstractTableModel;
- import java.util.ArrayList;
- /**
- * Created by Admin on 18.11.2016.
- */
- public class MyTableModel extends AbstractTableModel{
- ArrayList<ValueInTable> valueInTable;
- MyTableModel(ArrayList<ValueInTable> valueInTable){
- super();
- this.valueInTable = valueInTable;
- }
- @Override
- public int getRowCount() {
- return valueInTable.size();
- }
- // к-тво столбцов
- @Override
- public int getColumnCount() {
- return 6;
- }
- //данные в ячейке
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- if (columnIndex == 0)
- return valueInTable.get(rowIndex).getId();
- else if (columnIndex == 1)
- return valueInTable.get(rowIndex).getCode();
- else if (columnIndex == 2)
- return valueInTable.get(rowIndex).getType();
- else if (columnIndex == 3)
- return valueInTable.get(rowIndex).getQuantity();
- else if (columnIndex == 4)
- return valueInTable.get(rowIndex).getPrice();
- else if (columnIndex == 5)
- return valueInTable.get(rowIndex).getYear();
- else
- return "Other_Column";
- }
- public String getColumnName(int c){
- if (c == 0)
- return "id";
- else if (c == 1)
- return "Code ";
- else if (c == 2)
- return "Type ";
- else if (c == 3)
- return "Quantity ";
- else if (c == 4)
- return "Price ";
- else if (c == 5)
- return "Year ";
- else
- return "------";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement