「物品购买java」物品购买登记表格模板
今天给各位分享物品购买java的知识,其中也会对物品购买登记表格模板进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。
- 2、用JAVA实现超市购物功能,购物时如果购物者所需商品在超市中有则提示购物者买
- 3、Java如何解决超卖
- 4、假如商品只剩下一件,多个人同时购买,这时候java业务应该怎么处理,购物车应该怎样
- 5、用java做一个控制台应用程序模拟购物。如何实现有相同的产品,只增加该产品购买数量,不增加购买项?
使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。
用java Swing做的?给你个代码,还有运行结果图
package my.test.main;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Purchase extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
private JTextField textField_4;
private JLabel label_9;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Purchase frame = new Purchase();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Purchase() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel label = new JLabel("\u5546\u54C11");
label.setBounds(56, 40, 54, 15);
contentPane.add(label);
JLabel label_1 = new JLabel("\u5546\u54C12");
label_1.setBounds(56, 70, 54, 15);
contentPane.add(label_1);
JLabel label_2 = new JLabel("\u5546\u54C13");
label_2.setBounds(56, 100, 54, 15);
contentPane.add(label_2);
JLabel label_3 = new JLabel("\u5546\u54C14");
label_3.setBounds(56, 130, 54, 15);
contentPane.add(label_3);
JLabel label_4 = new JLabel("\u5546\u54C15");
label_4.setBounds(56, 160, 54, 15);
contentPane.add(label_4);
JLabel label_5 = new JLabel("\u5546\u54C1\u540D\u79F0");
label_5.setBounds(56, 7, 54, 15);
contentPane.add(label_5);
JLabel label_6 = new JLabel("单价");
label_6.setBounds(179, 7, 54, 15);
contentPane.add(label_6);
JLabel label_7 = new JLabel("数量");
label_7.setBounds(307, 7, 54, 15);
contentPane.add(label_7);
JLabel label_8 = new JLabel("总价");
label_8.setBounds(145, 224, 54, 15);
contentPane.add(label_8);
label_9 = new JLabel("0");
label_9.setBounds(209, 224, 54, 15);
contentPane.add(label_9);
JLabel label_10 = new JLabel("10");
label_10.setBounds(185, 40, 54, 15);
contentPane.add(label_10);
JLabel label_11 = new JLabel("20");
label_11.setBounds(185, 70, 54, 15);
contentPane.add(label_11);
JLabel label_12 = new JLabel("30");
label_12.setBounds(185, 100, 54, 15);
contentPane.add(label_12);
JLabel label_13 = new JLabel("40");
label_13.setBounds(185, 130, 54, 15);
contentPane.add(label_13);
JLabel label_14 = new JLabel("50");
label_14.setBounds(185, 160, 54, 15);
contentPane.add(label_14);
textField = new JTextField();
textField.setBounds(295, 37, 66, 21);
contentPane.add(textField);
textField.setColumns(10);
textField.addKeyListener(new CalcTotle());
textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(295, 67, 66, 21);
contentPane.add(textField_1);
textField_1.addKeyListener(new CalcTotle());
textField_2 = new JTextField();
textField_2.setColumns(10);
textField_2.setBounds(295, 97, 66, 21);
contentPane.add(textField_2);
textField_2.addKeyListener(new CalcTotle());
textField_3 = new JTextField();
textField_3.setColumns(10);
textField_3.setBounds(295, 127, 66, 21);
contentPane.add(textField_3);
textField_3.addKeyListener(new CalcTotle());
textField_4 = new JTextField();
textField_4.setColumns(10);
textField_4.setBounds(295, 157, 66, 21);
contentPane.add(textField_4);
textField_4.addKeyListener(new CalcTotle());
}
class CalcTotle extends KeyAdapter {
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
int count1, count2, count3, count4, count5;
if (!textField.getText().isEmpty()) {
count1 = Integer.parseInt(textField.getText()) * 10;
} else {
count1 = 0;
}
if (!textField_1.getText().isEmpty()) {
count2 = Integer.parseInt(textField_1.getText()) * 20;
} else {
count2 = 0;
}
if (!textField_2.getText().isEmpty()) {
count3 = Integer.parseInt(textField_2.getText()) * 30;
} else {
count3 = 0;
}
if (!textField_3.getText().isEmpty()) {
count4 = Integer.parseInt(textField_3.getText()) * 40;
} else {
count4 = 0;
}
if (!textField_4.getText().isEmpty()) {
count5 = Integer.parseInt(textField_4.getText()) * 50;
} else {
count5 = 0;
}
final int totle = count1 + count2 + count3 + count4 + count5;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
label_9.setText(totle + "");
}
});
}
}
}
用JAVA实现超市购物功能,购物时如果购物者所需商品在超市中有则提示购物者买
首先这个需求很奇怪。
购物者买的东西 应该在超市里选的才对。
那么意思就是 万一选的东西 没库存了怎么办?
2种解决方法:
1:每次购买前或者选择的时候,都去后台查询库存,然后提示,这种效率低。但也行就是了
2:在进入这个商品详情页时候查询本商品库存,为0 那就提示没库存了。
Java如何解决超卖
一、人数阀门设计:进行用户人群过滤。
商品数量只有100份,秒杀人数有10000人,那么我们就设计1道阀门(根据情况,可以设计3道或者2道都可以的)。
在整点的时候,我们对点击了“购买”按钮后,我们只运行500人进入信息填写页面,信息填写完成后提交订单。效果如下:
①商品详情点击购买(秒杀)--》②输入信息提交订单--》③进行支付
10000人 500人 (这里也可以设计阀门,只允许多少人进入支付)
其他未进入的如何处理乃?显示已抢完或者排队等待(这就是后面要提到的排队系统设计)。
二、会员排队设计:对用户进行排队,排在前面的先购买
这相当于是消息队列模式了,如果秒杀是立即知道结果,排队可能会有点鸡肋。
在第二步②输入信息提交订单后进行排队,排在前面的先购买,排在后面的后购买
三、问答问题设计:过滤掉一些反应慢的用户
在第一步①点击购买后跳转到问题页面,用户必须回答正确问题后,方可进入后面的流程
四、库存缓存设计:缓存库存,判断用户购买的商品是否还有,不读取数据库,速度快,也不会增加数据库负担,
经过前面的过滤,超卖的可能性比较低了提前将商品库存缓存起来,到下单购买的时候,用户购买了就减1,每次都通过库存缓存判断一下,如果为0就显示已抢完。
五、页面静态设计:尽量静态缓存化【CDN那些这里不做考虑】
第一步①商品详情页面,尽量进行缓存,减轻大批量用户在访问商品页面的时候,大量查询数据库。
问答问题页面:全静态,加载快,无数据库负担。
排队等待页面:全静态,加载快,无数据库负担。
排队结束页面:全静态,加载快,无数据库负担。
假如商品只剩下一件,多个人同时购买,这时候java业务应该怎么处理,购物车应该怎样
我之前做过这样的案例,可能我实现的方式不怎么合理,但是我说下我的思路。
一件商品,多人选择的,等第一个人选择的时候会将这一件商品锁住(我当时把库存减1,在暂存表中有个库存字段里面加1以及锁住时间),然后提示用户多长时间会五分钟内请结账,如果不结账数据库会过五分钟自动释放当前这个库存。(释放库存可以用job+触发器实现)
虽然这个思路不是很成熟,望你参考。
用java做一个控制台应用程序模拟购物。如何实现有相同的产品,只增加该产品购买数量,不增加购买项?
把产品放在一个map中,每次添加产品的时候从map中get,如果有值那么就把值增加,如果没有值就put。
private MapString, Integer productMap = new HashMap(String, Integer)();
方法体(String productName, int num) {
int value = productMap.get(productName);
if(value == null) {// 没有产品记录 就添加产品并设置数量
map.put(productName,num);
} else {// 已经有产品就只增加数量
map.put(productName,num+value);
}
}
物品购买java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于物品购买登记表格模板、物品购买java的信息别忘了在本站进行查找喔。