Advertisement
DeveloperSergio

изменение всех значенией в строке таблици

Nov 19th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.10 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.sql.*;
  6. import java.util.ArrayList;
  7. import java.util.Vector;
  8.  
  9. /**
  10. * Created by Admin on 18.11.2016.
  11. */
  12. public class JTableWindow{
  13.  
  14. private static final String url = "jdbc:mysql://localhost:3306/carsfff";
  15. private static final String user = "root";
  16. private static final String password = "root";
  17.  
  18. // поля для открытия подключения и получения значенией с Mysql
  19. private static Connection con;
  20. private static Statement stmt;
  21. private static ResultSet rs;
  22.  
  23. // массив переменного размера
  24. Vector<Object> vector = new Vector<>();
  25.  
  26. JButton btn = new JButton("Update");
  27.  
  28.  
  29. JTextField field1 = new JTextField(8);
  30. JTextField field2 = new JTextField(8);
  31. JTextField field3 = new JTextField(8);
  32. JTextField field4 = new JTextField(8);
  33. JTextField field5 = new JTextField(8);
  34.  
  35. //Объект таблицы
  36. JTable jTable;
  37.  
  38. JTableWindow() {
  39.  
  40. conToMysql();// метод с соединением
  41.  
  42. //Создаем новый контейнер JFrame
  43. JFrame jFrame = new JFrame("Mysql V1.37");
  44.  
  45. //Устанавливаем диспетчер компоновки
  46. jFrame.getContentPane().setLayout(new FlowLayout()); //отстуоп справа, лева(25)и верх (15)
  47.  
  48. //Устанавливаем размер окна
  49. jFrame.setSize(1000, 470);
  50.  
  51. //Устанавливаем завершение программы при закрытии окна
  52. jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  53.  
  54. jFrame.add(field1);
  55. jFrame.add(field2);
  56. jFrame.add(field3);
  57. jFrame.add(field4);
  58. jFrame.add(field5);
  59.  
  60.  
  61. //Создадим список из сущностей класса ValueInTable
  62. ArrayList valueInTables = new ArrayList();
  63.  
  64.  
  65. valueInTables.add( new ValueInTable(vector.get(0), vector.get(1), vector.get(2),
  66. vector.get(3), vector.get(4) ));
  67.  
  68.  
  69.  
  70. //Создадим модель таблицы
  71. MyTableModel tModel = new MyTableModel(valueInTables);
  72.  
  73. // добавляем кнопку на JFrame
  74. jFrame.add(btn);
  75.  
  76. // данные обновляются в таблице слушатель на кнопку
  77. btn.addActionListener(new ActionListener() {
  78. @Override
  79. public void actionPerformed(ActionEvent ae) {
  80. valueInTables.add(new ValueInTable(field1.getText(), field2.getText(),
  81. Integer.valueOf(field3.getText()), Integer.valueOf(field4.getText()),
  82. Integer.valueOf(field5.getText()) ) );
  83. addValues();
  84. tModel.fireTableDataChanged();
  85. }
  86. });
  87.  
  88. // jFrame.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
  89. //На основе модели, создадим новую JTable
  90. jTable = new JTable(tModel);
  91.  
  92.  
  93. //Создаем панель прокрутки и включаем в ее состав нашу таблицу
  94. JScrollPane jscrlp = new JScrollPane(jTable);
  95.  
  96.  
  97. //Устаналиваем размеры прокручиваемой области
  98. jTable.setPreferredScrollableViewportSize(new Dimension(550, 200));
  99.  
  100. //Добавляем в контейнер нашу панель прокрути и таблицу вместе с ней
  101. jFrame.getContentPane().add(jscrlp);
  102.  
  103. // отображение фрейма по центру
  104. jFrame.setLocationRelativeTo(null);
  105.  
  106. //Отображаем контейнер
  107. jFrame.setVisible(true);
  108. }
  109.  
  110.  
  111.  
  112. public void conToMysql(){
  113. // поля для подключения к Mysql серверу
  114.  
  115. String query = "select * from tbl1";
  116.  
  117. try {
  118. // opening database connection to MySQL server
  119. con = DriverManager.getConnection(url, user, password);
  120.  
  121. // getting Statement object to execute query
  122. stmt = con.createStatement();
  123.  
  124. // executing SELECT query
  125. rs = stmt.executeQuery(query);
  126.  
  127. // к-тво элементов в строке
  128. int x = rs.getMetaData().getColumnCount();
  129.  
  130.  
  131. while (rs.next()) {
  132. for (int i = 1; i <= x; i++){
  133. vector.add(rs.getObject(i));
  134. }
  135. }
  136.  
  137. } catch (SQLException sqlEx) {
  138. sqlEx.printStackTrace();
  139. } finally {
  140. //close connection ,stmt and resultset here
  141. try { con.close(); } catch(SQLException se) { /*can't do anything */ }
  142. try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
  143. try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
  144. }
  145. }
  146.  
  147. public void addValues(){
  148. // поля для подключения к Mysql серверу
  149.  
  150. String query1 = "update tbl1 set CODE=" + "'"+ field1.getText() +"'";
  151. String query2 = "update tbl1 set TYPE=" + "'"+ field2.getText() +"'";
  152. String query3 = "update tbl1 set QUANTITY=" + "'"+ field3.getText() +"'";
  153. String query4 = "update tbl1 set PRICE=" + "'"+ field4.getText() +"'";
  154. String query5 = "update tbl1 set YEAR=" + "'"+ field5.getText() +"'";
  155.  
  156. try {
  157. // opening database connection to MySQL server
  158. con = DriverManager.getConnection(url, user, password);
  159.  
  160. // getting Statement object to execute query
  161. stmt = con.createStatement();
  162.  
  163. // executing SELECT query
  164. stmt.executeUpdate(query1);
  165. stmt.executeUpdate(query2);
  166. stmt.executeUpdate(query3);
  167. stmt.executeUpdate(query4);
  168. stmt.executeUpdate(query5);
  169.  
  170. } catch (SQLException sqlEx) {
  171. sqlEx.printStackTrace();
  172. } finally {
  173. //close connection ,stmt and resultset here
  174. try { con.close(); } catch(SQLException se) { /*can't do anything */ }
  175. try { stmt.close(); } catch(SQLException se) { /*can't do anything */ }
  176. try { rs.close(); } catch(SQLException se) { /*can't do anything */ }
  177. }
  178. }
  179.  
  180.  
  181.  
  182. //Функция main, запускающаяся при старте приложения
  183. public static void main(String[] args) {
  184.  
  185. //Создаем фрейм в потоке обработки событий
  186. SwingUtilities.invokeLater(new Runnable() {
  187. @Override
  188. public void run() {
  189. new JTableWindow();
  190. }
  191. });
  192. }
  193. }
  194.  
  195.  
  196. /**
  197. * Created by Admin on 18.11.2016.
  198. */
  199. public class ValueInTable {
  200. Object code;
  201. Object type;
  202. Object quantity;
  203. Object price;
  204. Object year;
  205. public ValueInTable(Object code, Object type, Object quantity, Object price, Object year){
  206. this.code = code;
  207. this.type = type;
  208. this.quantity = quantity;
  209. this.price = price;
  210. this.year = year;
  211. }
  212.  
  213. public Object getCode(){
  214. return code;
  215. }
  216.  
  217. public Object getType(){
  218. return type;
  219. }
  220.  
  221. public Object getQuantity(){
  222. return quantity;
  223. }
  224.  
  225. public Object getPrice(){
  226. return price;
  227. }
  228.  
  229. public Object getYear(){
  230. return year;
  231. }
  232. }
  233.  
  234.  
  235. import javax.swing.table.AbstractTableModel;
  236. import java.util.ArrayList;
  237.  
  238. /**
  239. * Created by Admin on 18.11.2016.
  240. */
  241.  
  242.  
  243. public class MyTableModel extends AbstractTableModel{
  244.  
  245. ArrayList<ValueInTable> valueInTables;
  246.  
  247. MyTableModel(ArrayList<ValueInTable> valueInTable){
  248. super();
  249. this.valueInTables = valueInTable;
  250. }
  251.  
  252. @Override
  253. public int getRowCount() {
  254. return valueInTables.size();
  255. }
  256.  
  257. @Override
  258. public int getColumnCount() {
  259. return 5;
  260. }
  261.  
  262. @Override
  263. public Object getValueAt(int rowIndex, int columnIndex) {
  264. if (columnIndex == 0)
  265. return valueInTables.get(rowIndex).getCode();
  266. else if (columnIndex == 1)
  267. return valueInTables.get(rowIndex).getType();
  268. else if (columnIndex == 2)
  269. return valueInTables.get(rowIndex).getQuantity();
  270. else if (columnIndex == 3)
  271. return valueInTables.get(rowIndex).getPrice();
  272. else if (columnIndex == 4)
  273. return valueInTables.get(rowIndex).getYear();
  274. else
  275. return "Other_Column";
  276.  
  277. }
  278.  
  279. public String getColumnName(int c){
  280. if (c == 0)
  281. return "Code ";
  282. else if (c == 1)
  283. return "Type ";
  284. else if (c == 2)
  285. return "Quantity ";
  286. else if (c == 3)
  287. return "Price ";
  288. else if (c == 4)
  289. return "Year ";
  290. else
  291. return "------";
  292. }
  293. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement