fork download
  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.  
  7.  
  8. import JSplitDmeo.*;
  9. import java.awt.BorderLayout;
  10. import java.awt.Dimension;
  11. import java.awt.FlowLayout;
  12. import java.awt.Font;
  13. import java.awt.LayoutManager;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.ActionListener;
  16. import java.awt.event.MouseEvent;
  17. import java.awt.event.MouseListener;
  18. import java.util.Vector;
  19. import javax.swing.JButton;
  20. import javax.swing.JFrame;
  21. import javax.swing.JOptionPane;
  22. import javax.swing.JPanel;
  23. import javax.swing.JScrollPane;
  24. import javax.swing.JSplitPane;
  25. import javax.swing.JTable;
  26. import javax.swing.table.DefaultTableModel;
  27.  
  28. /**
  29.  *
  30.  * @author I'msimple
  31.  */
  32. public class DemoJTable {
  33.  
  34. JFrame frame;
  35. JPanel jpnLeft,jpnRight;
  36. JSplitPane jsp00;
  37. JSplitPane jsp01;
  38. JTable jtb;
  39.  
  40. LayoutManager border;
  41. Vector<String> vec;
  42. JButton jbtThem,jbtXoa;
  43.  
  44.  
  45. public DemoJTable(String text) {
  46.  
  47. initContainer();
  48.  
  49. initComponent();
  50.  
  51. setAction();
  52. frame.setTitle(text);
  53. frame.setVisible(true);
  54. }
  55.  
  56. private void setAction() {
  57.  
  58. //Them du lieu moi lần nhấn button
  59. jbtThem.addActionListener(new ActionListener() {
  60. @Override
  61. public void actionPerformed(ActionEvent e) {
  62. vec.add("15d9");
  63. vec.add("Le Minh Hiep");
  64. vec.add("20");
  65. table.addRow(vec);
  66.  
  67. }
  68. });
  69.  
  70.  
  71. ///Cick vao de xoa dong
  72. jbtXoa.addActionListener(new ActionListener() {
  73. @Override
  74. public void actionPerformed(ActionEvent e) {
  75. int row = jtb.getSelectedColumnCount();
  76. if(row==-1) return;
  77. table.removeRow(row);
  78.  
  79.  
  80.  
  81. }
  82. });
  83.  
  84.  
  85.  
  86. //Mỗi lần click vào từng dòng thì hiển thị thông tin chi tiết
  87. jtb.addMouseListener(new MouseListener() {
  88.  
  89.  
  90. @Override
  91. public void mouseClicked(MouseEvent e) {
  92. int row = jtb.getSelectedRow();
  93. if(row==-1) return;
  94.  
  95. String ma = jtb.getValueAt(row,0) + "";
  96. String ten = jtb.getValueAt(row,1) + "";
  97. String tuoi = jtb.getValueAt(row,2) +"";
  98.  
  99. JOptionPane.showMessageDialog(null,"Code : "+ma + "Name :"+ten + "Age : "+tuoi);
  100.  
  101. }
  102.  
  103. @Override
  104. public void mousePressed(MouseEvent e) {
  105. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  106. }
  107.  
  108. @Override
  109. public void mouseReleased(MouseEvent e) {
  110. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  111. }
  112.  
  113. @Override
  114. public void mouseEntered(MouseEvent e) {
  115. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  116. }
  117.  
  118. @Override
  119. public void mouseExited(MouseEvent e) {
  120. throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  121. }
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128. });
  129.  
  130.  
  131.  
  132. }
  133. private void initContainer() {
  134. frame = new JFrame();
  135. frame.setLayout(new BorderLayout());
  136. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  137. frame.setSize(400,600);
  138. frame.setLocationRelativeTo(null);
  139. }
  140.  
  141. private void initComponent() {
  142.  
  143. //Chia panel thành 2 phần left , right
  144. // Thêm table vào jpnRight
  145. jpnLeft = new JPanel();
  146.  
  147. //Chinh kích thuoc cho panel
  148. jpnLeft.setPreferredSize(new Dimension(200, 0));
  149. jpnRight = new JPanel();
  150. jpnRight.setLayout(new BorderLayout());
  151. jsp00 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jpnLeft, jpnRight);
  152. jsp00.setOneTouchExpandable(true);
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160. //Ta chia jpnRight thanh 2 phan
  161. JPanel jpnTop = new JPanel();
  162. jpnTop.setLayout(new BorderLayout());
  163. JPanel jpnBottom = new JPanel();
  164. jsp01 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jpnTop, jpnBottom);
  165. //Chinh kich thuoc jpnTop lon len
  166. jpnTop.setPreferredSize(new Dimension(0,200));
  167. jsp01.setOneTouchExpandable(true);
  168.  
  169. //Tao table roi them vao JPanel right
  170. table = new DefaultTableModel();
  171.  
  172. table.addColumn("Code");
  173. table.addColumn("Name");
  174. table.addColumn("Age");
  175. //add du lieu bang mang tinh
  176. String row1 [] = {"15d1","Nguyen Van A","19" };
  177. String row2 [] = {"15d2","Nguyen Van B","21" };
  178. String row3 [] = {"15d3","Nguyen Van C","23" };
  179. table.addRow(row1);
  180. table.addRow(row2);
  181. table.addRow(row2);
  182. //add du lieu bang vector
  183. vec = new Vector<>();
  184. vec.add("15d6");
  185. vec.add("Nguyen Van L");
  186. vec.add("40");
  187. table.addRow(vec);
  188.  
  189.  
  190.  
  191. //Dua JTabel vao JScrollPane
  192. jtb = new JTable(table);
  193. jsc = new JScrollPane(jtb,
  194. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
  195. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  196. jsc.setFont(new Font("Font.BOLD",20,20));
  197.  
  198. //Tao Jbutton
  199. JPanel jpnButton = new JPanel(new FlowLayout());
  200. jbtThem = new JButton("ADD");
  201. jbtXoa = new JButton("REMOVE");
  202. jpnButton.add(jbtThem);
  203. jpnButton.add(jbtXoa);
  204.  
  205. jpnTop.add(jsc,BorderLayout.CENTER);
  206. jpnTop.add(jpnButton,BorderLayout.SOUTH);
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223. //add cac giao dien
  224. frame.add(jsp00);
  225. jpnRight.add(jsp01,BorderLayout.CENTER);
  226. }
  227.  
  228.  
  229. public static void main(String[] args) {
  230. new DemoJTable("Chia đôi màn hình");
  231. }
  232.  
  233. }
  234.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:32: error: class DemoJTable is public, should be declared in a file named DemoJTable.java
public class DemoJTable {
       ^
Main.java:8: error: package JSplitDmeo does not exist
import JSplitDmeo.*;
^
2 errors
stdout
Standard output is empty