GAMES PC DOWNLOAD FREE FULL

GAME

[Java ] Jlist and dialog

 

Bài tập 18. Thực hành về JList
Viết lớp ChiPhi với yêu cầu:
+ Thuộc tính: loại phí (String), tiền (double).
+ Viết các hàm khởi tạo.
+ Viết các hàm get/set.
+ Hàm toString(): trả về chuỗi chứa 2 thông tin là loại phí và tiền.
Thiết kế giao diện như hình dưới đây:
Yêu cầu xử lý sử dụng lớp ChiPhi:
+ Nút “Thêm”: thêm một dòng vào JList bên dưới với 2 thông tin tương ứng là Loại phí và Tiền (xem hình). Chú ý không được thêm khi:
- Không nhập đủ dữ liệu.
- Ô nhập tiền không phải số.
- Ô nhập tiền là số âm.
+ Nút “Xóa”: xóa một dòng đang chọn trên JList, yêu cầu chọn trước khi xóa và hỏi xác nhận trước khi xóa.
+ Nút “Báo cáo”: xuất ra tổng chi phí.
+ Khi chọn 1 dòng trên JList thì hiện thông tin dòng đó lên các ô nhập liệu.
+ Nút “Thoát”: đóng chương trình.








ChiPhi.java

package thanhcs.bai18;

public class ChiPhi {

String loaiPhi;
double tien;
public ChiPhi(String loaiPhi, double tien) {
super();
this.loaiPhi = loaiPhi;
this.tien = tien;
}

public String getLoaiPhi() {
return loaiPhi;
}

public void setLoaiPhi(String loaiPhi) {
this.loaiPhi = loaiPhi;
}


public double getTien() {
return tien;
}

public void setTien(double tien) {
this.tien = tien;
}

@Override
public String toString() {
return loaiPhi + " " + tien;
}


}

bai18.java


package thanhcs.bai18;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;

public class bai18 extends JFrame implements ActionListener {

JLabel lblLoaiPhi, lblTien;
JTextField txtLoaiPhi, txtTien;
JButton btnThem, btnXoa, btnBaoCao, btnThoat;
JList listName;
DefaultListModel listModelName;

public bai18() {
JPanel Jpan = new JPanel(new BorderLayout());
JPanel north = new JPanel(new BorderLayout());

//
setTitle("emo JList");
setSize(500, 400);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);

//
JPanel pnLoaiPhi = new JPanel();
JPanel lay = new JPanel(new GridLayout(2, 2));
lay.add(lblLoaiPhi = new JLabel("Loại phí: "));
lay.add(lblTien = new JLabel("Tiền "));
txtLoaiPhi = new JTextField(15);
lay.add(txtLoaiPhi);
txtTien = new JTextField(15);
lay.add(txtTien);
Border west = BorderFactory.createLineBorder(Color.RED);
TitledBorder ti = new TitledBorder(west, "Các loại phí");
pnLoaiPhi.setBorder(ti);
pnLoaiPhi.add(lay);
north.add(pnLoaiPhi, BorderLayout.NORTH);
Jpan.add(north, BorderLayout.WEST);

listModelName = new DefaultListModel();
listName = new JList(listModelName);
north.add(new JScrollPane(listName), BorderLayout.CENTER);
//
JPanel East1 = new JPanel(new BorderLayout());
JPanel Jeast = new JPanel();
Jeast.setLayout(new BoxLayout(Jeast, BoxLayout.Y_AXIS));
btnThem = new JButton("Thêm");
btnXoa = new JButton("Xoá");
btnBaoCao = new JButton("Báo cáo");
btnThoat = new JButton("Thoát");
btnThem.setMaximumSize(btnBaoCao.getPreferredSize());
btnXoa.setMaximumSize(btnBaoCao.getPreferredSize());
btnThoat.setMaximumSize(btnBaoCao.getPreferredSize());
Jeast.add(Box.createVerticalStrut(30));
Jeast.add(btnThem);
Jeast.add(Box.createVerticalStrut(10));
Jeast.add(btnXoa);
Jeast.add(Box.createVerticalStrut(10));
Jeast.add(btnBaoCao);
Jeast.add(Box.createVerticalStrut(10));
Jeast.add(btnThoat);
East1.add(Jeast);

Jpan.add(East1, BorderLayout.EAST);

add(Jpan);
// Bắt sự kiện
btnBaoCao.addActionListener(this);
btnThem.addActionListener(this);
btnThoat.addActionListener(this);
btnXoa.addActionListener(this);
txtLoaiPhi.addActionListener(this);
txtTien.addActionListener(this);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new bai18().setVisible(true);
}

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Object o = arg0.getSource();

if (o.equals(btnThem) || o.equals(txtLoaiPhi) || o.equals(txtTien)) {
if (Kiemtra() == true) {
String lp = txtLoaiPhi.getText().trim();
double tien = Double.parseDouble(txtTien.getText());

ChiPhi cp = new ChiPhi(lp, tien);
listModelName.addElement(cp);
txtLoaiPhi.setText("");
txtTien.setText("");
}
}
if (o.equals(btnXoa)) {
if (listName.getSelectedIndex() == -1) {
JOptionPane.showConfirmDialog(this, "chon dong de !!!");
return;
}
{
JOptionPane.showConfirmDialog(this, "Muon tiep tuc hay khong",
"test", JOptionPane.YES_NO_OPTION);
listModelName.removeElement(listName.getSelectedValue());
//listModelName.removeAllElements();//xoa het
}
}

if(o.equals(btnBaoCao))
{
BaoCao_Dialog a = new BaoCao_Dialog(this, listModelName);
a.setVisible(true);
}
if(o.equals(btnThoat))
{
System.exit(0);
}
}

private boolean Kiemtra() {
if ((txtLoaiPhi.getText().equals("")) || (txtTien.getText().equals(""))) {
JOptionPane.showConfirmDialog(this, "Nhap thieu!");
return false;
}
try {
double Tien = Double.parseDouble(txtTien.getText());
if (Tien < 0) {
JOptionPane.showConfirmDialog(this, "Nhap tien lon hon 0");
txtTien.selectAll();
txtTien.requestFocus();
return false;
}
} catch (Exception e) {
// TODO: handle exception
JOptionPane.showConfirmDialog(this, "Loi kieu du lieu");
return false;
}
return true;

}

}


Baocao_Dialog.java

package thanhcs.bai18;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dialog;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class BaoCao_Dialog extends Dialog implements ActionListener, ListSelectionListener{

JButton exit;
DefaultListModel modellist;
JList mList;
JTextField txt;
public BaoCao_Dialog(JFrame owner, DefaultListModel modellist) {
super(owner);
this.modellist = modellist;

//
setTitle("Bao Cao");
setBackground(Color.WHITE);
setLayout(new BorderLayout());
setSize(250,300);
setModal(true); // set la con cua jframe kia
setLocationRelativeTo(null); // hien thi o giua
//

Panel panel = new Panel();
panel.setLayout(new BorderLayout());
panel.add(exit = new JButton("Close"));
exit.addActionListener(this);
add(exit, BorderLayout.SOUTH);

JPanel panel2 = new JPanel();
panel2.setLayout(new BorderLayout());
panel2.add(txt = new JTextField(20), BorderLayout.NORTH);
mList = new JList(modellist);
panel2.add(new JScrollPane(mList) , BorderLayout.CENTER);
add(panel2, BorderLayout.CENTER);


mList.addListSelectionListener(this);

}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==exit)
{
setVisible(false);
//System.exit(0);
}



}

@Override
public void valueChanged(ListSelectionEvent e) {


if(e.getSource()==mList)
{
if(mList.getSelectedIndex()!=-1)
{
ChiPhi c = (ChiPhi) mList.getSelectedValue();
txt.setText("Loai Chi Phi : " + c.getLoaiPhi() + "|| So tien : "+ c.getTien());
}
else
{
}
}
}


}



[Java ] Jlist and dialog 4.5 5 Thanh Nguyen Bài tập 18. Thực hành về JList Viết lớp ChiPhi với yêu cầu: + Thuộc tính: loại phí (String), tiền (double). + Viết các hàm khởi tạo. + Viết ...


No comments:

Post a Comment

NEW GAME

Powered by Blogger.

Labels

Quotes

1. Những cô gái giống như những tên miền Internet, những tên đẹp mà ta thích đã có chủ nhân rồi!


Popular Posts