Advertisement
Guest User

Untitled

a guest
Jun 11th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.20 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package baza;
  7.  
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSetMetaData;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import java.sql.ResultSet;
  14. import java.util.Vector;
  15. import javax.swing.*;
  16. import javax.swing.table.AbstractTableModel;
  17. import java.awt.*;
  18. import java.awt.event.ActionEvent;
  19. import java.awt.event.ActionListener;
  20.  
  21. public class baza extends JPanel implements ActionListener {
  22.  
  23. JTextField zapytanie = new JTextField();
  24. JTextField login = new JTextField();
  25. JLabel tablica = new JLabel("Komunikat z bazy danych", JLabel.CENTER);
  26. JPasswordField haslo = new JPasswordField();
  27. JButton wyslijZapytanie = new JButton("Zapytaj");
  28. JButton polacz = new JButton("Połącz");
  29.  
  30. Model widok = new Model();//tworzymy nowy model klasy dziedziczacej po AbstractTableModel
  31. public String zap;// string wykorzystywany do wyswietlania komunikatow
  32.  
  33. public baza()//konstuktor
  34. {
  35.  
  36. Dimension wymiary = new Dimension(400, 180);
  37. Dimension wymiary1 = new Dimension(200, 80);//wymiary dla TextFieldow
  38. Dimension wymiary2 = new Dimension(65, 80);//wymiary dla TextFieldow
  39.  
  40. // na poczatku musimy stworzyc nowa ramke//
  41. JFrame ramka = new JFrame();
  42. ramka.setTitle("Połączenie do bazy danych Oracle");
  43. Container kontener = ramka.getContentPane();
  44. ramka.setDefaultCloseOperation(ramka.EXIT_ON_CLOSE);
  45. ramka.setSize(wymiary);
  46.  
  47. /*ustawienie wymiarow elementow */
  48. zapytanie.setMaximumSize(wymiary1);
  49. login.setMaximumSize(wymiary2);
  50. haslo.setMaximumSize(wymiary2);
  51. tablica.setMaximumSize(wymiary1);
  52.  
  53. /*Tworzymy labele i ustawiamy co maja wyswietlac*/
  54. JLabel prosba = new JLabel("Zapytanie do bazy: ");
  55. JLabel Login = new JLabel("Login: ");
  56. JLabel Haslo = new JLabel("Haslo: ");
  57.  
  58. /*dodajemy akcje do wyslijZapytanieow*/
  59. wyslijZapytanie.addActionListener(this);
  60. polacz.addActionListener(this);
  61.  
  62. JTable tab = new JTable(widok);//tworzymy tabele, ktorej modelem jest klasa widok
  63. JScrollPane scrollPane = new JScrollPane(tab);//wkladamy tabele do JScrollPane
  64. scrollPane.setPreferredSize(wymiary);//wymiary JScrollPane
  65. tab.setFillsViewportHeight(true);
  66.  
  67. /*poniewaz jest duzo elementow musimy je jakos porzadkowac
  68. uzyjemy do tego celu BoxLayout-u ktory jest bardziej przyjazny
  69. od GridBagLayout
  70.  
  71. najpierw tworzymy 5 boxow poziomych, a nastepnie wkladamy je do
  72. jednego boxu pionowego
  73. */
  74. Box poziom1 = Box.createHorizontalBox();
  75. poziom1.add(Box.createHorizontalStrut(20));
  76. poziom1.add(scrollPane);
  77. poziom1.add(Box.createHorizontalStrut(20));
  78.  
  79. Box poziom2 = Box.createHorizontalBox();
  80. poziom2.add(Login);
  81. poziom2.add(Box.createHorizontalStrut(10));
  82. poziom2.add(login);
  83. poziom2.add(Box.createHorizontalStrut(10));
  84. poziom2.add(Haslo);
  85. poziom2.add(Box.createHorizontalStrut(10));
  86. poziom2.add(haslo);
  87. poziom2.add(Box.createHorizontalStrut(10));
  88. poziom2.add(polacz);
  89. poziom2.add(Box.createHorizontalStrut(10));
  90. poziom2.add(tablica);
  91.  
  92. Box poziom3 = Box.createHorizontalBox();
  93. poziom3.add(tablica);
  94.  
  95. Box poziom4 = Box.createHorizontalBox();
  96. poziom4.add(prosba);
  97. poziom4.add(Box.createHorizontalStrut(10));
  98. poziom4.add(zapytanie);
  99. poziom4.add(Box.createHorizontalStrut(10));
  100. poziom4.add(wyslijZapytanie);
  101.  
  102.  
  103. Box pion = Box.createVerticalBox();
  104. pion.add(Box.createVerticalStrut(20));
  105. pion.add(poziom1);
  106. pion.add(Box.createVerticalStrut(20));
  107. pion.add(new JSeparator(JSeparator.HORIZONTAL),
  108. BorderLayout.LINE_START);
  109. pion.add(Box.createVerticalStrut(10));
  110. pion.add(poziom2);
  111. pion.add(Box.createVerticalStrut(10));
  112. pion.add(poziom3);
  113. pion.add(Box.createVerticalStrut(10));
  114. pion.add(poziom4);
  115. pion.add(Box.createVerticalStrut(10));
  116. pion.add(Box.createVerticalStrut(5));
  117. kontener.add(pion, BorderLayout.CENTER);
  118. ramka.setVisible(true);
  119. ramka.pack();
  120. }
  121.  
  122. @SuppressWarnings("deprecation")
  123. public void actionPerformed(ActionEvent zdarzenie) {
  124. /*zaleznie od wyslijZapytanieu bedziemy podejmowali odpowiednia akcje */
  125.  
  126. Object zrodlo = zdarzenie.getSource();
  127.  
  128. if (zrodlo == wyslijZapytanie) {
  129. widok.zapytanie(zapytanie.getText().trim());
  130. } else if (zrodlo == polacz) {
  131. widok.init(login.getText().trim(), haslo.getText().trim());
  132. tablica.setText(widok.komunikat());
  133. }
  134. }
  135.  
  136. public static void main(String[] args) {
  137. baza a = new baza();//tworzymy obiekt klasy baza
  138. }
  139.  
  140. }
  141.  
  142. class Model extends AbstractTableModel {
  143.  
  144. Vector temp;
  145. Statement a;
  146. Connection polaczenie;
  147. String komunikat;
  148. int iloscKolumn;
  149.  
  150. Model() //konstruktor
  151. {
  152. temp = new Vector();
  153. }
  154.  
  155. String[] NazwaKolumny;
  156.  
  157. public int getColumnCount() {
  158. return iloscKolumn;
  159. }
  160.  
  161. public int getRowCount() {
  162. return temp.size();
  163. }
  164.  
  165. public String getColumnName(int col) {
  166. return NazwaKolumny[col];
  167. }
  168.  
  169. public Object getValueAt(int row, int col) {
  170. return ((String[]) temp.elementAt(row))[col];
  171. }
  172.  
  173. public void init(String login, String haslo) {
  174. try {
  175. Class.forName("oracle.jdbc.driver.OracleDriver");
  176. System.out.println("Sterowniki załadowane");
  177. polaczenie = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", login, haslo);
  178. komunikat = "Połączenie nawiązane!";
  179. komunikat();
  180. a = polaczenie.createStatement();
  181. System.out.println("Połączenie nawiązane");
  182. } catch (Exception wyjatek) {
  183. System.out.println("Błąd");
  184. komunikat = "Błąd";
  185. komunikat();
  186. }
  187. }
  188.  
  189. public void zapytanie(String zap) {
  190. try {
  191. temp = new Vector();
  192.  
  193. ResultSet res = a.executeQuery(zap);
  194. ResultSetMetaData meta = res.getMetaData();
  195. iloscKolumn = meta.getColumnCount();
  196.  
  197. NazwaKolumny = new String[iloscKolumn];
  198. for (int h = 1; h <= iloscKolumn; h++) {
  199. NazwaKolumny[h - 1] = meta.getColumnName(h);//
  200. }
  201. while (res.next()) {
  202. String[] record = new String[iloscKolumn];
  203. for (int i = 0; i < iloscKolumn; i++) {
  204. record[i] = res.getString(i + 1);
  205. }
  206. temp.addElement(record);
  207. }
  208. fireTableChanged(null);
  209. } catch (Exception wyjatek) {
  210. System.out.println("Błąd");
  211. }
  212.  
  213. }
  214.  
  215. public String komunikat() {
  216. return komunikat;
  217. }
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement