Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.table.DefaultTableModel;
- import javax.swing.table.TableModel;
- import javax.swing.table.TableRowSorter;
- public class DataNilai extends JFrame implements ActionListener{
- JMenuBar bar=new JMenuBar();
- JMenu file=new JMenu("File");
- JMenu nw=new JMenu("New");
- JCheckBoxMenuItem cb=new JCheckBoxMenuItem("Checkbox");
- JRadioButtonMenuItem r1=new JRadioButtonMenuItem("Radio 1");
- JRadioButtonMenuItem r2=new JRadioButtonMenuItem("Radio 2");
- ButtonGroup bG=new ButtonGroup();
- JMenuItem exit=new JMenuItem("Exit");
- DataNilai(){
- menuBar();
- toolBar();
- tabel();
- filter();
- form();
- }
- void menuBar(){
- nw.add(cb);
- nw.addSeparator();
- bG.add(r1);//supaya milih salah satu doank
- bG.add(r2);
- nw.add(r1);//masukin ke new, satu persatu setelah di grup
- nw.add(r2);
- nw.setIcon(new ImageIcon("image/New.png"));//taro gambar
- file.add(nw);
- file.add(exit);exit.addActionListener(this);//supaya bisa exit pas di klik
- file.setMnemonic('F');//supaya f digaris bawah
- bar.add(file);//masukin ke bar
- setJMenuBar(bar);//untuk menu
- }
- JToolBar tb=new JToolBar();
- JButton nwButton=new JButton("New");
- JButton delButton=new JButton("Delete");
- void toolBar(){
- tb.add(nwButton);nwButton.addActionListener(this);//supaya bisa di klik
- tb.add(delButton);delButton.addActionListener(this);
- add(tb,BorderLayout.NORTH);//supaya di atas
- }
- //buat table
- String[] hdr={"ID","Nama","Nilai"};//bikin headernya array of string
- Object[][] data={
- {"001","Andi",90},
- {"002","Budi",89}
- };//bikin data awal pake array of object,* 90 89 di int biar bisa di kondisiin
- DefaultTableModel dtm=new DefaultTableModel(data, hdr);
- JTable tbl=new JTable(dtm);
- TableRowSorter<TableModel>tblS=new TableRowSorter<TableModel>(dtm);
- void tabel(){
- tbl.setRowSorter(tblS);//untuk sort
- add(new JScrollPane(tbl),BorderLayout.CENTER);
- }
- //buat filter
- JPanel p=new JPanel(new FlowLayout());
- JTextField txt=new JTextField(20);
- JButton ftr=new JButton("Filter");
- void filter(){
- p.add(txt);
- p.add(ftr);ftr.addActionListener(this);
- add(p,BorderLayout.SOUTH);
- }
- //buat form
- void form(){
- setExtendedState(MAXIMIZED_BOTH);
- setVisible(true);
- setLocationRelativeTo(null);
- setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
- }
- public static void main(String[] args) {
- new DataNilai();
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if(e.getActionCommand().equals("Exit"))
- System.exit(EXIT_ON_CLOSE);
- else if (e.getActionCommand().equals("New")) {
- String nama,id,n;
- int nilai=-1,flag;
- id=JOptionPane.showInputDialog(null,"Masukan ID");
- nama=JOptionPane.showInputDialog(null,"Masukan Nama");
- do{
- flag=0;//kasih flag 0 biar kalo ga ada alnum langsung keluar loop
- n=JOptionPane.showInputDialog(null,"Masukan Nilai");//input biasa
- for (int i = 0; i < n.length(); i++) {//cek satu2
- if(!Character.isDigit(n.charAt(i))){//kalo ternyata ada huruf
- flag=1;//ubah flag ke 1 biar loop lagi
- }
- }
- if (flag!=1) //kalo udah bener angka semua abru diubah ke int
- nilai=Integer.valueOf(n);
- }while(nilai<0||nilai>100||flag==1);
- dtm.addRow(new Object[]{id,nama,nilai});
- }
- else if (e.getActionCommand().equals("Delete"))
- dtm.removeRow(tbl.convertRowIndexToModel(tbl.getSelectedRow()));
- //di ubah indexnya setelah sort supaya yang diapus sesuai
- else if (e.getActionCommand().equals("Filter")) {
- System.out.println("masuk filter");
- if (txt.getText().isEmpty()) {//kalo syarat kosong
- tblS.setRowFilter(null);//ga ada syarat semua data muncul
- }
- else
- tblS.setRowFilter(RowFilter.regexFilter(txt.getText(), 0));
- //regexfilter, filter yg disesuaikan dengan isi txt
- //0 maksudnya berdasarkan row 0(ID)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement