Advertisement
DeveloperSergio

new code

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