Advertisement
Guest User

Untitled

a guest
Jun 12th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.util.Iterator;
  5. import java.util.Vector;
  6. import java.io.*;
  7. import javax.swing.*;
  8. import javax.swing.table.*;
  9.  
  10.  
  11. class Statoko extends JFrame {
  12.  
  13. private String[] columnNames =
  14. {"Favourite Season", "Favourite Sport"};
  15.  
  16. private Object[][] data;
  17.  
  18. private JButton jbtAddRow = new JButton("Add new row");
  19. private JButton jbtSave = new JButton("Save Table");
  20. private JButton jbtLoad = new JButton("Load Table");
  21.  
  22. private DefaultTableModel tableModel = new DefaultTableModel(data, columnNames);
  23. private JTable myJTable = new JTable(tableModel);
  24.  
  25. private JFileChooser myJFileChooser = new JFileChooser(new File("."));
  26.  
  27. private void saveTable() {
  28. if (myJFileChooser.showSaveDialog(this) ==
  29. JFileChooser.APPROVE_OPTION ) {
  30. saveTable(myJFileChooser.getSelectedFile());
  31. }
  32. }
  33.  
  34. private void saveTable(File file) {
  35. try {
  36. ObjectOutputStream out = new ObjectOutputStream(
  37. new FileOutputStream(file));
  38. out.writeObject(tableModel.getDataVector());
  39. out.close();
  40. }
  41. catch (Exception ex) {
  42. ex.printStackTrace();
  43. }
  44. }
  45.  
  46. private void loadTable() {
  47. if (myJFileChooser.showOpenDialog(this) ==
  48. JFileChooser.APPROVE_OPTION )
  49. loadTable(myJFileChooser.getSelectedFile());
  50. }
  51.  
  52. private void loadTable(File file) {
  53. try {
  54. ObjectInputStream in = new ObjectInputStream(
  55. new FileInputStream(file));
  56. Vector rowData = (Vector)in.readObject();
  57. Iterator itr = rowData.iterator();
  58. while(itr.hasNext()) {
  59. tableModel.addRow((Vector) itr.next());
  60. }
  61. in.close();
  62. }
  63. catch (Exception ex) {
  64. ex.printStackTrace();
  65. }
  66. }
  67.  
  68. public Statoko() {
  69.  
  70. add(jbtAddRow, BorderLayout.NORTH);
  71.  
  72. add(new JScrollPane(myJTable), BorderLayout.CENTER);
  73.  
  74. JPanel panel = new JPanel(new java.awt.GridLayout(1, 2));
  75. panel.add(jbtSave);
  76. panel.add(jbtLoad);
  77. add(panel, BorderLayout.SOUTH);
  78.  
  79. jbtAddRow.addActionListener(new ActionListener() {
  80. public void actionPerformed(ActionEvent e) {
  81. if (myJTable.getSelectedRow() >= 0 )
  82. tableModel.insertRow (myJTable.getSelectedRow(),
  83. new java.util.Vector());
  84. else
  85. tableModel.addRow(new java.util.Vector());
  86. }
  87. });
  88.  
  89. jbtSave.addActionListener(new ActionListener() {
  90. public void actionPerformed(ActionEvent e) {
  91. saveTable();
  92. }
  93. });
  94.  
  95. jbtLoad.addActionListener(new ActionListener() {
  96. public void actionPerformed(ActionEvent e) {
  97. loadTable();
  98. }
  99. });
  100.  
  101. // Create a combo box for season
  102. JComboBox jcboSeason = new JComboBox();
  103. jcboSeason.addItem("Spring");
  104. jcboSeason.addItem("Summer");
  105. jcboSeason.addItem("Autumn");
  106. jcboSeason.addItem("Winter");
  107.  
  108. // Set combo box as the editor for the season column
  109. TableColumn seasonColumn = myJTable.getColumn("Favourite Season");
  110. seasonColumn.setCellEditor(
  111. new DefaultCellEditor(jcboSeason));
  112.  
  113. // Create a combo box for sport
  114. JComboBox jcboSport = new JComboBox();
  115. jcboSport.addItem("n.v.t.");
  116. jcboSport.addItem("1");
  117. jcboSport.addItem("2");
  118. jcboSport.addItem("3");
  119.  
  120. // Set combo box as the editor for the sport column
  121. TableColumn sportColumn = myJTable.getColumn("Debiteurennummer");
  122. sportColumn.setCellEditor(
  123. new DefaultCellEditor(jcboSport));
  124.  
  125. }
  126.  
  127. public static void main(String[] args) {
  128.  
  129. Statoko frame = new Statoko();
  130. frame.setTitle("Sharp extended - aanmaningen");
  131. frame.setSize(800, 400);
  132. frame.setLocationRelativeTo(null); // Center the frame
  133. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  134. frame.setVisible(true);
  135.  
  136. }
  137.  
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement