Advertisement
akevintg

Table and Menu JavaGUI

Dec 13th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.55 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import javax.swing.table.DefaultTableModel;
  6. import javax.swing.table.TableModel;
  7. import javax.swing.table.TableRowSorter;
  8.  
  9. public class DataNilai extends JFrame implements ActionListener{
  10.  
  11.     JMenuBar bar=new JMenuBar();
  12.     JMenu file=new JMenu("File");
  13.     JMenu nw=new JMenu("New");
  14.     JCheckBoxMenuItem cb=new JCheckBoxMenuItem("Checkbox");
  15.     JRadioButtonMenuItem r1=new JRadioButtonMenuItem("Radio 1");
  16.     JRadioButtonMenuItem r2=new JRadioButtonMenuItem("Radio 2");
  17.     ButtonGroup bG=new ButtonGroup();
  18.     JMenuItem exit=new JMenuItem("Exit");
  19.    
  20.     DataNilai(){
  21.         menuBar();
  22.         toolBar();
  23.         tabel();
  24.         filter();
  25.         form();
  26.     }
  27.    
  28.     void menuBar(){
  29.         nw.add(cb);
  30.         nw.addSeparator();
  31.         bG.add(r1);//supaya milih salah satu doank
  32.         bG.add(r2);
  33.         nw.add(r1);//masukin ke new, satu persatu setelah di grup
  34.         nw.add(r2);
  35.         nw.setIcon(new ImageIcon("image/New.png"));//taro gambar
  36.         file.add(nw);
  37.         file.add(exit);exit.addActionListener(this);//supaya bisa exit pas di klik
  38.         file.setMnemonic('F');//supaya f digaris bawah
  39.         bar.add(file);//masukin ke bar
  40.         setJMenuBar(bar);//untuk menu
  41.     }
  42.    
  43.     JToolBar tb=new JToolBar();
  44.     JButton nwButton=new JButton("New");
  45.     JButton delButton=new JButton("Delete");
  46.    
  47.     void toolBar(){
  48.         tb.add(nwButton);nwButton.addActionListener(this);//supaya bisa di klik
  49.         tb.add(delButton);delButton.addActionListener(this);
  50.         add(tb,BorderLayout.NORTH);//supaya di atas
  51.     }
  52.     //buat table
  53.     String[] hdr={"ID","Nama","Nilai"};//bikin headernya array of string
  54.     Object[][] data={
  55.         {"001","Andi",90},
  56.         {"002","Budi",89}
  57.     };//bikin data awal pake array of object,* 90 89 di int biar bisa di kondisiin
  58.     DefaultTableModel dtm=new DefaultTableModel(data, hdr);
  59.     JTable tbl=new JTable(dtm);
  60.     TableRowSorter<TableModel>tblS=new TableRowSorter<TableModel>(dtm);
  61.     void tabel(){
  62.         tbl.setRowSorter(tblS);//untuk sort
  63.         add(new JScrollPane(tbl),BorderLayout.CENTER);
  64.        
  65.     }
  66.    
  67.     //buat filter
  68.     JPanel p=new JPanel(new FlowLayout());
  69.     JTextField txt=new JTextField(20);
  70.     JButton ftr=new JButton("Filter");
  71.    
  72.     void filter(){
  73.         p.add(txt);
  74.         p.add(ftr);ftr.addActionListener(this);
  75.         add(p,BorderLayout.SOUTH);
  76.     }
  77.     //buat form
  78.     void form(){
  79.         setExtendedState(MAXIMIZED_BOTH);
  80.         setVisible(true);
  81.         setLocationRelativeTo(null);
  82.         setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
  83.     }
  84.    
  85.     public static void main(String[] args) {
  86.         new DataNilai();
  87.     }
  88.  
  89.     @Override
  90.     public void actionPerformed(ActionEvent e) {
  91.         if(e.getActionCommand().equals("Exit"))
  92.             System.exit(EXIT_ON_CLOSE);
  93.         else if (e.getActionCommand().equals("New")) {
  94.             String nama,id,n;
  95.             int nilai=-1,flag;
  96.             id=JOptionPane.showInputDialog(null,"Masukan ID");
  97.             nama=JOptionPane.showInputDialog(null,"Masukan Nama");
  98.             do{
  99.                 flag=0;//kasih flag 0 biar kalo ga ada alnum langsung keluar loop
  100.                 n=JOptionPane.showInputDialog(null,"Masukan Nilai");//input biasa
  101.                 for (int i = 0; i < n.length(); i++) {//cek satu2
  102.                     if(!Character.isDigit(n.charAt(i))){//kalo ternyata ada huruf
  103.                         flag=1;//ubah flag ke 1 biar loop lagi
  104.                     }
  105.                 }
  106.                 if (flag!=1) //kalo udah bener angka semua abru diubah ke int
  107.                     nilai=Integer.valueOf(n);
  108.             }while(nilai<0||nilai>100||flag==1);
  109.             dtm.addRow(new Object[]{id,nama,nilai});
  110.         }
  111.         else if (e.getActionCommand().equals("Delete"))
  112.             dtm.removeRow(tbl.convertRowIndexToModel(tbl.getSelectedRow()));
  113.             //di ubah indexnya setelah sort supaya yang diapus sesuai
  114.         else if (e.getActionCommand().equals("Filter")) {
  115.             System.out.println("masuk filter");
  116.             if (txt.getText().isEmpty()) {//kalo syarat kosong
  117.                 tblS.setRowFilter(null);//ga ada syarat semua data muncul
  118.             }
  119.             else
  120.                 tblS.setRowFilter(RowFilter.regexFilter(txt.getText(), 0));
  121.                 //regexfilter, filter yg  disesuaikan dengan isi txt
  122.                 //0 maksudnya berdasarkan row 0(ID)
  123.         }
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement