Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.25 KB | None | 0 0
  1.  
  2. import com.sun.media.jfxmedia.logging.Logger;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.sql.Connection;
  6. import java.sql.SQLException;
  7. import javax.swing.table.DefaultTableModel;
  8. import koneksi.conek;
  9.  
  10. /*
  11. * To change this license header, choose License Headers in Project Properties.
  12. * To change this template file, choose Tools | Templates
  13. * and open the template in the editor.
  14. */
  15.  
  16. /**
  17. *
  18. * @author DBC115042
  19. */
  20. import java.util.List;
  21. import java.util.ArrayList;
  22. import java.util.Collections;
  23. import java.util.Comparator;
  24. import java.util.Locale;
  25. import java.util.logging.Level;
  26. import java.util.logging.LogManager;
  27. import javax.swing.JLabel;
  28. import javax.swing.JTable;
  29. import javax.swing.UIManager;
  30. import javax.swing.table.TableCellRenderer;
  31. public class BandingData extends javax.swing.JFrame {
  32.  
  33. List<String> arrReg = new ArrayList<String>();
  34. static List<String> arrRek = new ArrayList<String>();
  35. static List<String> arrPiu = new ArrayList<String>();
  36. final static java.util.logging.Logger logger = java.util.logging.Logger.getAnonymousLogger();
  37. /**
  38. * Creates new form BandingData
  39. */
  40. public BandingData() {
  41. initComponents();
  42.  
  43. tampildtmhs();
  44. tampildtrek();
  45.  
  46. //Menghighlight Cell Merah
  47. tblmhs.setDefaultRenderer(Object.class, new cellHighlighter());
  48. getPiutang();
  49.  
  50. tambahPiutang();
  51. setLocationRelativeTo(this);
  52. }
  53.  
  54. /**
  55. * This method is called from within the constructor to initialize the form.
  56. * WARNING: Do NOT modify this code. The content of this method is always
  57. * regenerated by the Form Editor.
  58. */
  59. @SuppressWarnings("unchecked")
  60. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  61. private void initComponents() {
  62.  
  63. jPanel1 = new javax.swing.JPanel();
  64. bKeluar = new javax.swing.JButton();
  65. jScrollPane2 = new javax.swing.JScrollPane();
  66. tblrek = new javax.swing.JTable();
  67. jScrollPane3 = new javax.swing.JScrollPane();
  68. tblmhs = new javax.swing.JTable();
  69.  
  70. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  71.  
  72. jPanel1.setBackground(new java.awt.Color(204, 204, 255));
  73.  
  74. bKeluar.setText("Keluar");
  75. bKeluar.addActionListener(new java.awt.event.ActionListener() {
  76. public void actionPerformed(java.awt.event.ActionEvent evt) {
  77. bKeluarActionPerformed(evt);
  78. }
  79. });
  80.  
  81. tblrek.setModel(new javax.swing.table.DefaultTableModel(
  82. new Object [][] {
  83. {null},
  84. {null},
  85. {null},
  86. {null}
  87. },
  88. new String [] {
  89. "Nama Pada Rekening Koran"
  90. }
  91. ));
  92. jScrollPane2.setViewportView(tblrek);
  93.  
  94. tblmhs.setModel(new javax.swing.table.DefaultTableModel(
  95. new Object [][] {
  96. {null},
  97. {null},
  98. {null},
  99. {null}
  100. },
  101. new String [] {
  102. "Nama Mahasiswa Registrasi"
  103. }
  104. ));
  105. jScrollPane3.setViewportView(tblmhs);
  106.  
  107. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  108. jPanel1.setLayout(jPanel1Layout);
  109. jPanel1Layout.setHorizontalGroup(
  110. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  111. .addGroup(jPanel1Layout.createSequentialGroup()
  112. .addGap(25, 25, 25)
  113. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  114. .addComponent(bKeluar, javax.swing.GroupLayout.Alignment.TRAILING)
  115. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  116. .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)
  117. .addGap(18, 18, 18)
  118. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)))
  119. .addContainerGap(24, Short.MAX_VALUE))
  120. );
  121. jPanel1Layout.setVerticalGroup(
  122. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  123. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  124. .addContainerGap()
  125. .addComponent(bKeluar)
  126. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  127. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  128. .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  129. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  130. .addContainerGap(52, Short.MAX_VALUE))
  131. );
  132.  
  133. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  134. getContentPane().setLayout(layout);
  135. layout.setHorizontalGroup(
  136. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  137. .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  138. );
  139. layout.setVerticalGroup(
  140. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  141. .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  142. );
  143.  
  144. pack();
  145. }// </editor-fold>
  146.  
  147. private void bKeluarActionPerformed(java.awt.event.ActionEvent evt) {
  148. new MenuUtama().show();
  149. this.dispose();
  150. }
  151.  
  152. /**
  153. * @param args the command line arguments
  154. */
  155. public static void main(String args[]) {
  156. /* Set the Nimbus look and feel */
  157. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  158. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  159. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  160. */
  161. try {
  162. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  163. if ("Nimbus".equals(info.getName())) {
  164. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  165. break;
  166. }
  167. }
  168. } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
  169. java.util.logging.Logger.getLogger(BandingData.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  170. }
  171. //</editor-fold>
  172.  
  173. //</editor-fold>
  174.  
  175. /* Create and display the form */
  176. java.awt.EventQueue.invokeLater(() -> {
  177. new BandingData().setVisible(true);
  178. });
  179. }
  180.  
  181. // Variables declaration - do not modify
  182. private javax.swing.JButton bKeluar;
  183. private javax.swing.JPanel jPanel1;
  184. private javax.swing.JScrollPane jScrollPane2;
  185. private javax.swing.JScrollPane jScrollPane3;
  186. private javax.swing.JTable tblmhs;
  187. private javax.swing.JTable tblrek;
  188. // End of variables declaration
  189.  
  190.  
  191. private void Banding() {
  192.  
  193.  
  194. }
  195.  
  196. private void tampildtrek() {
  197. DefaultTableModel model = new DefaultTableModel();
  198. model.addColumn("Nama Mahasiswa Pada Rekening Koran");
  199.  
  200. try {
  201. int no=1;
  202. String sql = "select nama from trek";
  203. java.sql.Connection conn=(Connection)conek.GetConnection();
  204. java.sql.Statement stm=conn.createStatement();
  205. java.sql.ResultSet res=stm.executeQuery(sql);
  206. while(res.next()){
  207. arrRek.add(res.getString(1));
  208. model.addRow(new Object[]{res.getString(1)});
  209. }
  210. Collections.sort(arrRek,new Comp());
  211. tblrek.setModel(model);
  212. } catch (SQLException e) {
  213. }
  214. }
  215.  
  216. private void tampildtmhs() {
  217. DefaultTableModel model = new DefaultTableModel();
  218. model.addColumn("Nama Mahasiswa Regisrasi");
  219.  
  220. try {
  221. int no=1;
  222. String sql = "select nama from tregmhs";
  223. java.sql.Connection conn=(Connection)conek.GetConnection();
  224. java.sql.Statement stm=conn.createStatement();
  225. java.sql.ResultSet res=stm.executeQuery(sql);
  226. while(res.next()){
  227. arrReg.add(res.getString(1));
  228. model.addRow(new Object[]{res.getString(1)});
  229. }
  230. Collections.sort(arrReg,new Comp());
  231. tblmhs.setModel(model);
  232. } catch (SQLException e) {
  233. }
  234. }
  235.  
  236. public static boolean binarySearch(String toFind, List<String> arr){
  237. int lowestIndex = 0;
  238. int highestIndex = arr.size()-1;
  239. int middleIndex = 0;
  240.  
  241. while (lowestIndex <= highestIndex){
  242. middleIndex = (lowestIndex+highestIndex)/2;
  243.  
  244. if (toFind.compareTo(arr.get(middleIndex).toString()) > 0){
  245. lowestIndex = middleIndex+1;
  246. }else if (toFind.compareTo(arr.get(middleIndex).toString()) < 0){
  247. highestIndex = middleIndex-1;
  248. }else{
  249. break;
  250. }
  251. }
  252. if (lowestIndex>highestIndex){
  253. return false;
  254. }else{
  255. return true;
  256. }
  257. }
  258.  
  259. public void tambahPiutang(){
  260. List<Mahasiswa> arrMHS = new ArrayList<Mahasiswa>();
  261. arrMHS.clear();
  262. for (int i=0;i<arrPiu.size();i++){
  263. try {
  264. String sql ="SELECT * FROM tregmhs WHERE Nama='"+arrPiu.get(i).toString()+"'";
  265. System.out.println(sql);
  266. java.sql.Connection conn=(Connection)conek.GetConnection();
  267. java.sql.Statement stm=conn.createStatement();
  268. java.sql.ResultSet res=stm.executeQuery(sql);
  269. while(res.next()){
  270. Mahasiswa mhs = new Mahasiswa(res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.getString(5));
  271. arrMHS.add(mhs);
  272. }
  273. } catch (SQLException e) {
  274. }
  275. }
  276. arrPiu.clear();
  277. for(int i = 0; i < arrMHS.size()-1; i++){
  278. try{
  279. String ket = "";
  280. String sql = "INSERT INTO tpiutang SELECT "
  281. + "'"+arrMHS.get(i).nama+"','"+arrMHS.get(i).nim+"','"+arrMHS.get(i).fak+"','"+arrMHS.get(i).prog+"',"+arrMHS.get(i).ukt+",'"+ket+"'"+
  282. " FROM dual WHERE NOT EXISTS (SELECT 1 FROM tpiutang WHERE Nama = "+"'"+arrMHS.get(i).nim+"')";
  283.  
  284. java.sql.Connection conn=(Connection)conek.GetConnection();
  285. java.sql.PreparedStatement pst=conn.prepareStatement(sql);
  286. pst.execute();
  287. System.out.println(sql);
  288. }catch (SQLException e){
  289.  
  290. }
  291. }
  292. }
  293.  
  294. private static class Comp implements Comparator<String>{
  295.  
  296. @Override
  297. public int compare(String string1, String string2) {
  298. return string1.compareTo(string2);
  299. }
  300. }
  301.  
  302. private void getPiutang(){
  303. for (int i = 0; i<arrReg.size();i++){
  304. if(!binarySearch(arrReg.get(i).toString(),arrRek)){
  305. arrPiu.add(arrReg.get(i).toString());
  306. }
  307. }
  308. }
  309.  
  310. private static class cellHighlighter extends JLabel implements TableCellRenderer{
  311.  
  312. public cellHighlighter(){
  313. setOpaque(true);
  314.  
  315. }
  316.  
  317. @Override
  318. public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
  319. String val = (String) value;
  320. Color c;
  321. if (!binarySearch(val,arrRek)){
  322. c = Color.RED;
  323. }else {
  324. c = UIManager.getColor("Table.background");
  325. }
  326. setBackground(c);
  327. setText(val);
  328. return this;
  329. }
  330. }
  331.  
  332. static class Mahasiswa{
  333. String nama;
  334. String nim;
  335. String fak;
  336. String prog;
  337. String ukt;
  338.  
  339. Mahasiswa(String nm, String nmm, String fk, String prg, String ukt2){
  340. this.nama = nm;
  341. this.nim = nmm;
  342. this.fak = fk;
  343. this.prog = prg;
  344. this.ukt = ukt2;
  345. }
  346. }
  347. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement