JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » 違規輔導區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
話題被移動
該話題已被移動 - morchory , 2016-01-02 11:40
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 飲料系統問題
h4674156





發文: 6
積分: 0
於 2016-01-01 11:34 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位前輩們好
小弟目前的問題是如果輸入單項品項數量超過10杯 按下計算會顯示折扣後金額
但是如果多項品項數量如果相加也有超過10杯 也有選擇品項 但按下計算則還是原來單項價格加乘 仍還是原價該怎麼讓它有不同品項抓取數量 也有折扣呢?

第二是要怎麼判斷使用者所輸入的部分為數字 如果在textbox中輸入特殊字元 按下按鈕後 跳出錯誤的對話視窗
反之輸入數量(數字) 按下按鈕後才會成功送出呢?

以下為程式碼部分

package beverages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Shop extends Frame {
static JFrame jframe = new JFrame();
static JButton button[] = new JButton[3];
static JCheckBox jcheckbox[] = new JCheckBox[20];
static Panel panel;
static JLabel jlabel[] = new JLabel[100];
static JTextField jtextfield[] = new JTextField[100];
static int price[] = new int[20];
static String titleGUI;

public static void main(String[] args) {
// TODO Auto-generated method stub
Shop test = new Shop();

}

public Shop() {
Container cp = jframe.getContentPane();
cp.setLayout(null);

jframe.setBackground(Color.PINK);
jframe.setSize(760, 320);

setTitle("飲料選購程式");

jlabel[99] = new JLabel("勾選飲料種類,並在輸入框杯數,若是您的訂購不足1杯,將以1杯價格計算 金額為");
jlabel[99].setBounds((jframe.getWidth() / 2) - (430 / 2) - 30, 10, 760, 12);
cp.add(jlabel[99]);

jcheckbox[0] = new JCheckBox();
jtextfield[0] = new JTextField(20);
price[0] = 25;
jcheckbox[0].setText("原鄉四季/" + price[0] + "元");
jtextfield[0].setText("0");
jcheckbox[0].setFont(new Font("System", Font.BOLD, 18));
jtextfield[0].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[0].setBounds(30, 40, 150, 26);
jtextfield[0].setBounds(180, 40, 60, 26);
cp.add(jcheckbox[0]);
cp.add(jtextfield[0]);

jcheckbox[1] = new JCheckBox();
jtextfield[1] = new JTextField(20);
price[1] = 20;
jcheckbox[1].setText("翡翠綠茶/" + price[1] + "元");
jtextfield[1].setText("0");
jcheckbox[1].setFont(new Font("System", Font.BOLD, 18));
jtextfield[1].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[1].setBounds(30, 70, 150, 26);
jtextfield[1].setBounds(180, 70, 60, 26);
cp.add(jcheckbox[1]);
cp.add(jtextfield[1]);

jcheckbox[2] = new JCheckBox();
jtextfield[2] = new JTextField(20);
price[2] = 20;
jcheckbox[2].setText("嚴選高山茶/" + price[2] + "元");
jtextfield[2].setText("0");
jcheckbox[2].setFont(new Font("System", Font.BOLD, 16));
jtextfield[2].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[2].setBounds(30, 100, 150, 26);
jtextfield[2].setBounds(180, 100, 60, 26);
cp.add(jcheckbox[2]);
cp.add(jtextfield[2]);

jcheckbox[3] = new JCheckBox();
jtextfield[3] = new JTextField(20);
price[3] = 45;
jcheckbox[3].setText("紅茶拿鐵/" + price[3] + "元");
jtextfield[3].setText("0");
jcheckbox[3].setFont(new Font("System", Font.BOLD, 18));
jtextfield[3].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[3].setBounds(30, 130, 150, 26);
jtextfield[3].setBounds(180, 130, 60, 26);
cp.add(jcheckbox[3]);
cp.add(jtextfield[3]);

jcheckbox[4] = new JCheckBox();
jtextfield[4] = new JTextField(20);
price[4] = 40;
jcheckbox[4].setText("錫蘭奶茶/" + price[4] + "元");
jtextfield[4].setText("0");
jcheckbox[4].setFont(new Font("System", Font.BOLD, 18));
jtextfield[4].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[4].setBounds(30, 160, 150, 26);
jtextfield[4].setBounds(180, 160, 60, 26);
cp.add(jcheckbox[4]);
cp.add(jtextfield[4]);

jcheckbox[5] = new JCheckBox();
jtextfield[5] = new JTextField(20);
price[5] = 40;
jcheckbox[5].setText("珍珠紅茶/" + price[5] + "元");
jtextfield[5].setText("0");
jcheckbox[5].setFont(new Font("System", Font.BOLD, 18));
jtextfield[5].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[5].setBounds(30, 190, 150, 26);
jtextfield[5].setBounds(180, 190, 60, 26);
cp.add(jcheckbox[5]);
cp.add(jtextfield[5]);

jcheckbox[6] = new JCheckBox();
jtextfield[6] = new JTextField(20);
price[6] = 40;
jcheckbox[6].setText("椰果奶茶/" + price[6] + "元");
jtextfield[6].setText("0");
jcheckbox[6].setFont(new Font("System", Font.BOLD, 18));
jtextfield[6].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[6].setBounds(30, 220, 150, 26);
jtextfield[6].setBounds(180, 220, 60, 26);
cp.add(jcheckbox[6]);
cp.add(jtextfield[6]);

jcheckbox[7] = new JCheckBox();
jtextfield[7] = new JTextField(20);
price[7] = 25;
jcheckbox[7].setText("茉香綠茶/" + price[7] + "元");
jtextfield[7].setText("0");
jcheckbox[7].setFont(new Font("System", Font.BOLD, 18));
jtextfield[7].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[7].setBounds(270, 40, 150, 26);
jtextfield[7].setBounds(420, 40, 60, 26);
cp.add(jcheckbox[7]);
cp.add(jtextfield[7]);

jcheckbox[8] = new JCheckBox();
jtextfield[8] = new JTextField(20);
price[8] = 25;
jcheckbox[8].setText("極品菁茶/" + price[8] + "元");
jtextfield[8].setText("0");
jcheckbox[8].setFont(new Font("System", Font.BOLD, 18));
jtextfield[8].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[8].setBounds(270, 70, 150, 26);
jtextfield[8].setBounds(420, 70, 60, 26);
cp.add(jcheckbox[8]);
cp.add(jtextfield[8]);

jcheckbox[9] = new JCheckBox();
jtextfield[9] = new JTextField(20);
price[9] = 20;
jcheckbox[9].setText("特選苔洱/" + price[9] + "元");
jtextfield[9].setText("0");
jcheckbox[9].setFont(new Font("System", Font.BOLD, 18));
jtextfield[9].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[9].setBounds(270, 100, 150, 26);
jtextfield[9].setBounds(420, 100, 60, 26);
cp.add(jcheckbox[9]);
cp.add(jtextfield[9]);

jcheckbox[10] = new JCheckBox();
jtextfield[10] = new JTextField(20);
price[10] = 45;
jcheckbox[10].setText("優鮮冬瓜/" + price[10] + "元");
jtextfield[10].setText("0");
jcheckbox[10].setFont(new Font("System", Font.BOLD, 18));
jtextfield[10].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[10].setBounds(270, 130, 150, 26);
jtextfield[10].setBounds(420, 130, 60, 26);
cp.add(jcheckbox[10]);
cp.add(jtextfield[10]);

jcheckbox[11] = new JCheckBox();
jtextfield[11] = new JTextField(20);
price[11] = 40;
jcheckbox[11].setText("茉香奶綠/" + price[11] + "元");
jtextfield[11].setText("0");
jcheckbox[11].setFont(new Font("System", Font.BOLD, 18));
jtextfield[11].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[11].setBounds(270, 160, 150, 26);
jtextfield[11].setBounds(420, 160, 60, 26);
cp.add(jcheckbox[11]);
cp.add(jtextfield[11]);

jcheckbox[12] = new JCheckBox();
jtextfield[12] = new JTextField(20);
price[12] = 40;
jcheckbox[12].setText("粉圓奶茶/" + price[12] + "元");
jtextfield[12].setText("0");
jcheckbox[12].setFont(new Font("System", Font.BOLD, 18));
jtextfield[12].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[12].setBounds(270, 190, 150, 26);
jtextfield[12].setBounds(420, 190, 60, 26);
cp.add(jcheckbox[12]);
cp.add(jtextfield[12]);

jcheckbox[13] = new JCheckBox();
jtextfield[13] = new JTextField(20);
price[13] = 50;
jcheckbox[13].setText("蜜蜂奶茶/" + price[13] + "元");
jtextfield[13].setText("0");
jcheckbox[13].setFont(new Font("System", Font.BOLD, 18));
jtextfield[13].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[13].setBounds(270, 220, 150, 26);
jtextfield[13].setBounds(420, 220, 60, 26);
cp.add(jcheckbox[13]);
cp.add(jtextfield[13]);

jcheckbox[14] = new JCheckBox();
jtextfield[14] = new JTextField(20);
price[14] = 20;
jcheckbox[14].setText("烏龍綠茶/" + price[14] + "元");
jtextfield[14].setText("0");
jcheckbox[14].setFont(new Font("System", Font.BOLD, 18));
jtextfield[14].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[14].setBounds(510, 40, 150, 26);
jtextfield[14].setBounds(660, 40, 60, 26);
cp.add(jcheckbox[14]);
cp.add(jtextfield[14]);

jcheckbox[15] = new JCheckBox();
jtextfield[15] = new JTextField(20);
price[15] = 20;
jcheckbox[15].setText("錫蘭紅茶/" + price[15] + "元");
jtextfield[15].setText("0");
jcheckbox[15].setFont(new Font("System", Font.BOLD, 18));
jtextfield[15].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[15].setBounds(510, 70, 150, 26);
jtextfield[15].setBounds(660, 70, 60, 26);
cp.add(jcheckbox[15]);
cp.add(jtextfield[15]);

jcheckbox[16] = new JCheckBox();
jtextfield[16] = new JTextField(20);
price[16] = 45;
jcheckbox[16].setText("優鮮高山/" + price[16] + "元");
jtextfield[16].setText("0");
jcheckbox[16].setFont(new Font("System", Font.BOLD, 18));
jtextfield[16].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[16].setBounds(510, 100, 150, 26);
jtextfield[16].setBounds(660, 100, 60, 26);
cp.add(jcheckbox[16]);
cp.add(jtextfield[16]);

jcheckbox[17] = new JCheckBox();
jtextfield[17] = new JTextField(20);
price[17] = 45;
jcheckbox[17].setText("豆漿牛奶/" + price[17] + "元");
jtextfield[17].setText("0");
jcheckbox[17].setFont(new Font("System", Font.BOLD, 18));
jtextfield[17].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[17].setBounds(510, 130, 150, 26);
jtextfield[17].setBounds(660, 130, 60, 26);
cp.add(jcheckbox[17]);
cp.add(jtextfield[17]);

jcheckbox[18] = new JCheckBox();
jtextfield[18] = new JTextField(20);
price[18] = 40;
jcheckbox[18].setText("烏龍奶茶/" + price[18] + "元");
jtextfield[18].setText("0");
jcheckbox[18].setFont(new Font("System", Font.BOLD, 18));
jtextfield[18].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[18].setBounds(510, 160, 150, 26);
jtextfield[18].setBounds(660, 160, 60, 26);
cp.add(jcheckbox[18]);
cp.add(jtextfield[18]);

jcheckbox[19] = new JCheckBox();
jtextfield[19] = new JTextField(20);
price[19] = 45;
jcheckbox[19].setText("布丁奶茶/" + price[19] + "元");
jtextfield[19].setText("0");
jcheckbox[19].setFont(new Font("System", Font.BOLD, 18));
jtextfield[19].setFont(new Font("System", Font.BOLD, 16));
jcheckbox[19].setBounds(510, 190, 150, 26);
jtextfield[19].setBounds(660, 190, 60, 26);
cp.add(jcheckbox[19]);
cp.add(jtextfield[19]);

button[0] = new JButton("送出資料");
button[1] = new JButton("計算");
button[2] = new JButton("關閉程式");
button[0].setFont(new Font("System", Font.BOLD, 14));
button[1].setFont(new Font("System", Font.BOLD, 12));
button[2].setFont(new Font("System", Font.BOLD, 14));
button[0].setBounds(485 - 3, 220, 100, 26);
button[1].setBounds(485 + 100 + 1, 220, 60, 26);
button[2].setBounds(485 + 100 + 60 + 5, 220, 100, 26);
cp.add(button[0]);
cp.add(button[1]);
cp.add(button[2]);

button[0].addActionListener((ActionEvent e) -> {
boolean n = false;
for (int i = 0; i <= 19; i++)
if (jcheckbox.isSelected())
n = true;

if (n == true)
JOptionPane.showMessageDialog(null, "資料已成功送出!", "Message", JOptionPane.PLAIN_MESSAGE);
else
JOptionPane.showMessageDialog(null, "確認是否有勾選一筆項目", titleGUI, JOptionPane.PLAIN_MESSAGE);

});
button[1].addActionListener((ActionEvent e) -> {
int s = 0;
boolean n = false;
for (int i = 0; i <= 19; i++) {
if (jcheckbox.isSelected())
try {

if ((Integer.parseInt(jtextfield.getText()) >= 10)) {
s += price * Integer.parseInt(jtextfield.getText()) * 0.5;
n = true;
} else {
s += price * Integer.parseInt(jtextfield.getText());
n = true;
}
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "輸入錯誤,請重新輸入數量 ", titleGUI, JOptionPane.PLAIN_MESSAGE);
return;
}
}
if (n == true)
jlabel[99].setText("勾選飲料種類,並在輸入框杯數,若是您的訂購不足1杯,將以1杯價格計算 金額為 " + s);
else

JOptionPane.showMessageDialog(null, "確認是否有勾選一筆項目", titleGUI, JOptionPane.PLAIN_MESSAGE);
});
button[2].addActionListener((ActionEvent e) -> {
System.exit(0);
});
java.util.Date current = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String c = sdf.format(current);
jlabel[98] = new JLabelCoffee;
jtextfield[6].setFont(new Font("System", Font.BOLD, 16));
jlabel[98].setBounds(10, 254, 150, 26);
cp.add(jlabel[98]);

jframe.setVisible(true);
jframe.setResizable(false);
}

public static void title(String format) {
jframe.setFont(new Font("System", Font.PLAIN, 14));

Font font = jframe.getFont();
FontMetrics fontmetrics = jframe.getFontMetrics(font);

int x = fontmetrics.stringWidth("|");
int y = fontmetrics.stringWidth(" ");
int z = jframe.getWidth() / 2 - (x / 2);
int w = z / y;

String title = "";
title = String.format("%" + w + "s", title);
titleGUI = format;
jframe.setTitle(title + format);
}
}


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1417 飲料系統問題 h4674156 17456 2016-01-01 11:34
» JWorld@TW »  違規輔導區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8