1. package hu.wowemuf.TestPrograms;
  2. /**
  3. *
  4. * @author Szilárd
  5. */
  6. import java.sql.*;
  7. import java.awt.*;
  8. import javax.swing.*;
  9. import javax.swing.table.DefaultTableModel;
  10. public class MultipleRowDisplayer {
  11. protected String connectionURL;
  12. protected Connection connection;
  13. protected Statement statement;
  14. protected ResultSet rs;
  15. protected String charName;
  16. protected String charRace;
  17. protected String charClass;
  18. @SuppressWarnings("CallToThreadDumpStack")
  19. public static void main(String[] args){
  20. try{
  21. new MultipleRowDisplayer().connectToServer();
  22. } catch(Exception ex){
  23. ex.printStackTrace();
  24. }
  25. }
  26. @SuppressWarnings("FinalizeDeclaration")
  27. protected void finalize() throws Throwable{
  28. if(rs != null){
  29. rs.close();
  30. if(statement != null){
  31. statement.close();
  32. if(connection != null){
  33. connection.close();
  34. }
  35. }
  36. }
  37. super.finalize();
  38. }
  39. /**
  40. * @param accID - Ez ugyis csak teszt szintjen megy egyelore, a beepitett rendszerbe mashogy ultetem at.
  41. * @throws Exception
  42. */
  43. private void userInterface(int accID) throws Exception{
  44. JFrame frame = new JFrame("JTableManager @ TESTPHASE");
  45. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  46. frame.setSize(800,600);
  47. Object[] colNames = {"Név","Faj","Kaszt"};
  48. JPanel mainPanel = new JPanel();
  49. mainPanel.setLayout(new GridLayout(1,1));
  50. DefaultTableModel dtm = new DefaultTableModel(new Object[][]{},colNames);
  51. JTable mainTable = new JTable(dtm);
  52. mainTable.setOpaque(true);
  53. mainTable.setBackground(new Color(0,0,0,0));
  54. mainTable.getTableHeader().setEnabled(false);
  55. mainTable.setEnabled(false);
  56. String QueryThread = "SELECT `name`,`race`,`class` FROM `characters` WHERE `account`="+accID+"";
  57. rs = statement.executeQuery(QueryThread);
  58. while(rs.next()){
  59. charName = rs.getString("name");
  60. charRace = rs.getString("race");
  61. charClass = rs.getString("class");
  62. dtm.addRow(new Object[]{charName,charRace,charClass}); // Ez vegzi el a piszkos munkat.
  63. }
  64. JScrollPane tableScroller = new JScrollPane(mainTable);
  65. tableScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  66. tableScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
  67. mainTable.setFillsViewportHeight(true);
  68. mainPanel.add(tableScroller); // Kicsit becsomagolva kapjuk majd meg.
  69. frame.getContentPane().add(BorderLayout.CENTER,mainPanel);
  70. frame.setLocation(400,200);
  71. frame.setVisible(true);
  72. }
  73. private void connectToServer() throws Exception{
  74. connectionURL = "jdbc:mysql://localhost:3306/characters";
  75. connection = null;
  76. statement = null;
  77. rs = null;
  78. Class.forName("com.mysql.jdbc.Driver").newInstance();
  79. connection = DriverManager.getConnection(connectionURL,"root","root");
  80. statement = connection.createStatement();
  81. if(connection != null){
  82. System.out.println("Connection established.");
  83. this.userInterface(5); // Az UI felepitese a megfelelo modon, kicsit fapados megoldassal.
  84. } else{
  85. System.err.println("Error while connecting.");
  86. }
  87. }
  88. }