当前位置:网站首页>课程设计总结
课程设计总结
2022-06-11 04:51:00 【megaData】
index:
package megadata.zfx.test01;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class index {
private JLabel label3;//购物标题
private JFrame frame;//窗口
private JLabel label1;//账号标签
private JTextField field1;//输入账号
private JLabel label2;//密码标签
private JPasswordField field2;//密码文本
private JButton b1;//登录按钮
private JButton b2;//注册按钮
public static void main(String[] args){
new index();
}
public index(){
setFrame();
listen();
}
public void setFrame(){
//界面
frame = new JFrame("购物系统登陆");
frame.setLayout(new GridLayout(5,1));
frame.setBounds(100,100,400,400);
frame.setLocationRelativeTo(null);//设置屏幕为正中央
ImageIcon bg = new ImageIcon("src/resource/pict.jpeg"); //创建一个背景图片
JLabel label=new JLabel(bg);//把背景图片添加到标签里
label.setBounds(100, 100,240, 36);
//账号密码,登陆注册
label3 = new JLabel("购物系统登陆");
label3.setFont(new Font("宋体",Font.PLAIN,20));
label1 = new JLabel("账号");
field1 = new JTextField("",30);
label2 = new JLabel("密码");
field2 = new JPasswordField("",30);
b1 = new JButton("登录");
b2 = new JButton("注册");
JPanel d=new JPanel();
frame.add(label);
d.add(label3);
frame.add(d);
JPanel a=new JPanel();
a.add(label1);
a.add(field1);
JPanel b=new JPanel();
b.add(label2);
b.add(field2);
frame.add(a);
frame.add(b);
JPanel c=new JPanel();
c.add(b1);
c.add(b2);
frame.add(c);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void listen(){
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
new Sign(field1.getText(), String.valueOf(field2.getPassword()), frame);
new shop1().loadFrame();
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
new register();
}
});
}
}
Print:
package megadata.zfx.test01;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Print extends Frame {
//属性
TextArea text1 = new TextArea();
// public static void main(String[] args) {
// Print print = new Print();
// print.loadFrame();
// }
public void loadFrame(){
Label label1 = new Label(" * 西科小超市 * ");
Label label2 = new Label("购物小票");
//小票文本内容预设
label1.setFont(new Font("黑体",Font.BOLD,19));
label2.setFont(new Font("黑体",Font.PLAIN,15));
text1.setEditable(false);//文本框不可编辑
setBounds(550,250,300,400);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(label1);
add(label2);
add(text1);
//小票文本输出
for (int i = 0; i < shop1.v.size() / 4; i++) {
String name = shop1.v.get(i * 4).toString();
double price = Double.parseDouble(shop1.v.get(( i + 1) * 4 - 1).toString());
text1.append(" "+"记录" + (i + 1) + ":" + name + "," + price + "元" + "\r\n");
text1.append("---------------------------------------" + "\r\n");
}
double sum1 = 0;
for (int i = 1; i <= shop1.v.size() / 4; i++) {
sum1 = sum1 + Double.parseDouble(shop1.v.get( 4 * i - 1).toString());
}
text1.append(" "+"合计" + sum1 + "元" + "\r\n");
setVisible(true);
setResizable(false);
//窗口关闭的实现
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
setVisible(false);
text1.setText("");
}
});
}
}
register:
package megadata.zfx.test01;
//package login;
import com.megadata.test1.index;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class register {
JFrame frame;
private JPanel contentPanel = new JPanel();
private JButton ok = new JButton("确定注册");
private JButton back =new JButton("返回登录界面");
private JLabel jLabel1 = new JLabel("用户名");
private JLabel jLabel2 = new JLabel("密码");
private JTextField atf = new JTextField("账号名不要超过6个字",20);
private JTextField apw =new JTextField("不超过6位数的密码",20);
private JTextField idea =new JTextField("",30);
private static File file = new File("账号密码.txt");
public static void main(String[] args){
new register();
}
public register(){
setFrame();
addListener();
}
public void setFrame(){
frame = new JFrame("用户注册");
frame.setBounds(600,300,600,300);
frame.setLayout(new GridLayout(4,1));
frame.setLocationRelativeTo(null);//设置窗口在屏幕位置最中间
//账号
JPanel panel1=new JPanel();
panel1.add(jLabel1);
panel1.add(atf);
//密码
JPanel panel2=new JPanel();
panel2.add(jLabel2);
panel2.add(apw);
//注册与返回
JPanel panel3=new JPanel();
panel3.add(back);
panel3.add(ok);
//提示
JPanel panel4=new JPanel();
panel4.add(idea);
frame.add(panel1);
frame.add(panel2);
frame.add(panel3);
frame.add(panel4);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
private void addListener(){
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(atf.getText().length()>6||apw.getText().length()>6||atf.getText().isEmpty()||apw.getText().isEmpty()){
idea.setText("输入错误");
}else{
setRegister(atf.getText(),apw.getText());
idea.setText("注册成功,可以继续注册或返回登录界面");
}
}
});
back.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
new index();
}
});
}
public void setRegister(String atf,String apw){
try{
BufferedWriter fileWriter=new BufferedWriter(new FileWriter(file,true));
fileWriter.write(atf+"="+apw);
fileWriter.newLine();
fileWriter.flush();
fileWriter.close();
}catch(IOException e){
System.out.println("输入错误");
e.printStackTrace();
}
}
}
shop1:
package megadata.zfx.test01;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;
//主页面类
public class shop1 extends Frame {
//属性
TextField num1,num2,num3,num4;
static Vector<Object> v = new Vector<>();
TextArea text = new TextArea();
double sum = 0.0;
int f = 0;
//方法
public static int getVSize(){
return v.size()/4;
}
// public double getSum(int a){
// return v.
// }
public void loadFrame(){
num1 = new TextField(10);
num2 = new TextField(10);
num4 = new TextField(10);
num3 = new TextField(5);
Label label1 = new Label("品名");
Label label2 = new Label("数量");
Label label3 = new Label("单价");
Label label4 = new Label("定位");
Button button = new Button("添加");
Button button1 = new Button("删除单条");
Button button2 = new Button("付款");
Button button3 = new Button("清单");
Button button4 = new Button("清屏");
text.setEditable(false); //设置文本区域不可编辑
//加入监听器
button.addActionListener(new MyAddListener());
button1.addActionListener(new MyDeleteListener());
button2.addActionListener(new MyPayListener());
button3.addActionListener(new MyPrintListener());
button4.addActionListener(new MyClearListener());
//布局
setLayout(new FlowLayout());
setBounds(200,200,500,350);
setLocationRelativeTo(null);//设置屏幕为正中央
add(label1);
add(num1);
add(label2);
add(num2);
add(label3);
add(num4);
add(button);
add(label4);
add(num3);
add(button1);
add(button2);
add(button3);
add(button4);
add(text);
setVisible(true);
setResizable(false); //窗口大小固定
//窗口关闭的实现
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
//监听器
private class MyAddListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String n1 = num1.getText();
int n2 = Integer.parseInt(num2.getText());
double n3 = Double.parseDouble(num4.getText());
double n4 = n2 * n3;
//添加数据进入vector
v.add(n1);
v.add(n2);
v.add(n3);
v.add(n4);
//在TestArea区域打印添加的信息
text.append("添加" + (v.size()/4) +"记录:" + n1 + n2 + "斤,单价" + n3 + "元" + "\r\n");
//将文本框中输入的内容清除等待下一次的输入
num1.setText("");
num2.setText("");
num4.setText("");
}
}
//删除单条监听器
private class MyDeleteListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int n5 = Integer.parseInt(num3.getText());
text.append("删除" + n5 +"记录:" + v.get((n5 - 1) * 4) + v.get((n5 - 1) * 4 + 1) + "斤,单价" + v.get((n5 - 1) * 4 + 2) + "元" + "\r\n");
for (int i = 0; i < 4; i++) {
v.remove((n5 - 1) * 4);
}
num3.setText("");
}
}
//付款监听器
private class MyPayListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 1; i <= v.size() / 4; i++) {
sum = sum + Double.parseDouble(v.get( 4 * i - 1).toString());
}
text.append("你购买了" + v.size()/4 +"种物品总金额为:" + sum + "元,请付款,谢谢。" + "\r\n");
f = 1; //打印小票标识符
sum = 0;
}
}
//清空监视器
private class MyClearListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
v.clear(); //清空容器
text.setText(""); //清空文本框
f = 0;
}
}
//打印小票监视器
private class MyPrintListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(f==0){
text.append("请确认付款后再查看小票" + "\r\n");
}else{
new Print().loadFrame();
}
}
}
}
Sign:
package megadata.zfx.test01;
import javax.swing.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Sign {
public static void main(String[] args){
}
public Sign(String atf, String apw, JFrame frame){
if(login(atf,apw)){
frame.setVisible(false);
}else{
JDialog mistaskeCase=new JDialog(frame,"提示");
mistaskeCase.setBounds(600,300,600,300);
mistaskeCase.setLocationRelativeTo(null);
JTextField fileOfError=new JTextField("账号或密码输入错误",25);
mistaskeCase.add(fileOfError);
mistaskeCase.setVisible(true);
mistaskeCase.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
public boolean login(String username,String password){
boolean flag = false;
BufferedReader lbd=null;
try{
lbd=new BufferedReader(new FileReader("账号密码.txt"));
String line=null;
while((line=lbd.readLine())!=null){
String[] datas = line.split("=");
if(datas[0].equals(username)&& datas[1].equals(password)){
flag=true;
break;
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
assert lbd !=null;
try{
lbd.close();
}catch(IOException e){
e.printStackTrace();
}
}
return flag;
}
}
边栏推荐
- Leetcode question brushing series - mode 2 (datastructure linked list) - 725 (m): split linked list in parts
- Exness: Liquidity Series - order Block, Unbalanced (II)
- Free data | new library online | cnopendata data data of national heritage stores and auction enterprises
- New product pre-sale: 25g optical network card based on Intel 800 series is coming
- 用万用表检测数码管
- How to quickly find the official routine of STM32 Series MCU
- PCB地线设计_单点接地_底线加粗
- C语言试题三(程序选择题——含知识点详解)
- Network security construction in 5g Era
- Acts: efficient test design (with an excellent test design tool)
猜你喜欢

Sealem Finance打造Web3去中心化金融平台基础设施

Yolact paper reading and analysis

Feature engineering feature dimension reduction

KD-Tree and LSH

What are the similarities and differences between the data center and the data warehouse?

Mathematical basis of information and communication -- the first experiment
![[Transformer]Is it Time to Replace CNNs with Transformers for Medical Images?](/img/83/7025050667c382857c032bdd8f6649.jpg)
[Transformer]Is it Time to Replace CNNs with Transformers for Medical Images?

Differences between the four MQ

用万用表检测数码管

图的最短路径问题 详细分解版
随机推荐
[Transformer]Is it Time to Replace CNNs with Transformers for Medical Images?
华为设备配置跨域虚拟专用网
How to purchase 25g optical network card
How can smart construction sites achieve digital transformation?
[Transformer]AutoFormerV2:Searching the Search Space of Vision Transformer
[Transformer]MViTv2:Improved Multiscale Vision Transformers for Classification and Detection
International qihuo: what are the risks of Zhengda master account
Mindmanager22 professional mind mapping tool
Network security construction in 5g Era
Technical dry goods: how to select the most suitable RDMA network card
无刷电机调试经验与可靠性设计
Programming Examples Using RDMA Verbs
Acts: how to hide defects?
How the idea gradle project imports local jar packages
Leetcode question brushing series - mode 2 (datastructure linked list) - 160:intersection of two linked list
[Transformer]On the Integration of Self-Attention and Convolution
华为设备配置BGP/MPLS IP 虚拟专用网命令
Detailed decomposition of the shortest path problem in Figure
Simple linear regression of sklearn series
Let me tell you how to choose a 10 Gigabit network card