请各位好心的JAVA高手进来下.

HOVERKSY 2008-04-10 09:22:11
小弟正在做一项JAVA作业,是用GUI设计一个点菜系统.已经构思好了,程序也写了一半了.但是现在遇到了瓶颈,过不去了.其实具体方法也知道怎么用,但因为是初学者,没有这方面设计经验.

代码看对于高手看起来可能有点简单,但是我想了3 4 个小时想不通.所以上来赐教.请各位高手帮帮小弟.

请留下QQ,我会联系你的.我的 86668123
...全文
134 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhong370 2008-04-11
  • 打赏
  • 举报
回复
顶下!
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
还有,要显示每一个的数量怎么弄?


谢谢各位高手的指点.
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
请问选了一个之后,我能不能用gettext的方法拿到display里面的内容?我拿到了,在追加.

titlesp[k].getText()这个能不能用个字符串代替?
hmsuccess 2008-04-10
  • 打赏
  • 举报
回复
同上,

for (int k = 0; k < titlesp.length; k++ )
if (titlesp[k].isSelected())

display.append( titlesp[k].getText() + "\n");

for (int k = 0; k < titlesl.length; k++ )
if (titlesl[k].isSelected())
display.append(" Large (" + titlesl[k].getText() + ")");
for (int k = 0; k < titlesm.length; k++ )
if (titlesm[k].isSelected())
display.append(" Medium (" + titlesm[k].getText() + ")");
for (int k = 0; k < titless.length; k++ )
if (titless[k].isSelected())
display.append(" Small (" + titless[k].getText() + ")");


你用了四个for语句
云上飞翔 2008-04-10
  • 打赏
  • 举报
回复
答:对不起,上贴贴错了.
将方法public void itemStateChanged(ItemEvent e)的代码改成如下代码,就行了.

public void itemStateChanged(ItemEvent e) {
display.setText("Your order so far \n ");
for (int k = 0; k < titlesp.length; k++ )
{
if (titlesp[k].isSelected())

display.append( titlesp[k].getText() );


if (titlesl[k].isSelected())
display.append(" Large (" + titlesl[k].getText() + ")");

if (titlesm[k].isSelected())
display.append(" Medium (" + titlesm[k].getText() + ")");

if (titless[k].isSelected())
display.append(" Small (" + titless[k].getText() + ")");
display.append("\n");
}
}

云上飞翔 2008-04-10
  • 打赏
  • 举报
回复
答:
将方法public void itemStateChanged(ItemEvent e)的代码改成如下代码,就行了.

public void itemStateChanged(ItemEvent e) {
display.setText("Your order so far ");
for (int k = 0; k < titlesp.length; k++ )
if (titlesp[k].isSelected())

display.append( titlesp[k].getText() + "\n");

for (int k = 0; k < titlesl.length; k++ )
if (titlesl[k].isSelected())
display.append(" Large (" + titlesl[k].getText() + ")");
for (int k = 0; k < titlesm.length; k++ )
if (titlesm[k].isSelected())
display.append(" Medium (" + titlesm[k].getText() + ")");
for (int k = 0; k < titless.length; k++ )
if (titless[k].isSelected())
display.append(" Small (" + titless[k].getText() + ")");

}
nihuajie05 2008-04-10
  • 打赏
  • 举报
回复
好象今天我不大好运行,我在别人的机子上呢....我只能用眼睛看了
顺便告诉你帖代码可以用JAVA格式的
import javax.swing.*;  
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;



public class Pizza extends JFrame implements ItemListener, ActionListener{

private final int PTTITLES = 7,LTITLES = 7,MTITLES = 7,STITLES = 7;
private JPanel mainPanel = new JPanel(),
centerPanel = new JPanel(),
buttonPanel = new JPanel(),
pizzaTypePanel = new JPanel(),
largePanel = new JPanel(),
mediumPanel = new JPanel(),
smallPanel = new JPanel(),
ddPanel = new JPanel();
private JButton clear = new JButton("clear");
private JButton submit = new JButton("submit");
private JTextArea display = new JTextArea(10,20);
String s;
JCheckBox titlesp[] = new JCheckBox[PTTITLES];
JCheckBox titlesl[] = new JCheckBox[LTITLES];
JCheckBox titlesm[] = new JCheckBox[MTITLES];
JCheckBox titless[] = new JCheckBox[STITLES];
JTabbedPane jTabbedPane = new JTabbedPane();


public Pizza() {
pizzaTypePanel.setLayout(new GridLayout(7, 1));
largePanel.setLayout(new GridLayout(7, 1));
mediumPanel.setLayout(new GridLayout(7, 1));
smallPanel.setLayout(new GridLayout(7, 1));
pizzaTypePanel.setBorder(BorderFactory.createTitledBorder("Pizza Type"));
largePanel.setBorder(BorderFactory.createTitledBorder("Large"));
mediumPanel.setBorder(BorderFactory.createTitledBorder("Medium"));
smallPanel.setBorder(BorderFactory.createTitledBorder("Small"));
centerPanel.add(pizzaTypePanel);
centerPanel.add(largePanel);
centerPanel.add(mediumPanel);
centerPanel.add(smallPanel);
centerPanel.setLayout(new FlowLayout());
pack();
getContentPane().add(mainPanel);
pizzaType();
largemoney();
mediummoney();
smallmoney();
buttonPanel.add(clear);
buttonPanel.add(submit);
mainPanel.add(jTabbedPane);
mainPanel.add(display);
clear.addActionListener(this);
submit.addActionListener(this);
mainPanel.add(buttonPanel);
mainPanel.setLayout(new GridLayout(3, 1));
jTabbedPane.addTab("Pizza Type", null, centerPanel, null);
jTabbedPane.addTab("声明", null, ddPanel, null);

}

public void pizzaType() {

String titleLabelsPT[] =
{"Super Special", "Marinara",
"Vegetarian","Hawaiian","Meat Lovers","Chicken","Extra Topping"};

for(int k = 0; k < titleLabelsPT.length; k++) {
titlesp[k] = new JCheckBox(titleLabelsPT[k]);
titlesp[k].addItemListener(this);
pizzaTypePanel.add(titlesp[k]);
}}

public void largemoney() {

String titleLabelsLM[] =
{"8.00", "8.00",
"8.00","8.00","8.00","8.00","8.00"};

for(int k = 0; k < titleLabelsLM.length; k++) {
titlesl[k] = new JCheckBox(titleLabelsLM[k]);
titlesl[k].addItemListener(this);
largePanel.add(titlesl[k]);
}}

public void mediummoney() {

String titleLabelsMM[] =
{"6.50", "6.50",
"6.50","6.50","6.50","6.50","6.50"};

for(int k = 0; k < titleLabelsMM.length; k++) {
titlesm[k] = new JCheckBox(titleLabelsMM[k]);
titlesm[k].addItemListener(this);
mediumPanel.add(titlesm[k]);
}}

public void smallmoney() {

String titleLabelsSM[] =
{"5.00", "5.00",
"5.00","5.00","5.00","5.00","5.00"};

for(int k = 0; k < titleLabelsSM.length; k++) {
titless[k] = new JCheckBox(titleLabelsSM[k]);
titless[k].addItemListener(this);
smallPanel.add(titless[k]);
}}


public void itemStateChanged(ItemEvent e) {
display.setText("Your order so far ");
for (int k = 0; k < titlesp.length; k++ )
if (titlesp[k].isSelected())

display.append( titlesp[k].getText() + "\n");

for (int k = 0; k < titlesl.length; k++ )
if (titlesl[k].isSelected())
display.append(" Large (" + titlesl[k].getText() + ")");
for (int k = 0; k < titlesm.length; k++ )
if (titlesm[k].isSelected())
display.append(" Medium (" + titlesm[k].getText() + ")");
for (int k = 0; k < titless.length; k++ )
if (titless[k].isSelected())
display.append(" Small (" + titless[k].getText() + ")");

}

public void actionPerformed(ActionEvent e){
String label = submit.getText();
if (e.getSource() == submit) {
if (label.equals("Submit Order")) {
display.append("Thank you. Press 'Confirm' to submit for your order!\n");
submit.setText("Confirm Order");
} else {
display.append("Thank you. You will receive your order tomorrow!\n");
submit.setText("Submit Order");
}
} else
display.setText("Thank you. Maybe we can serve you next time!\n");
}

public static void main(String[] args) {
Pizza f = new Pizza();
f.setSize(600, 750);

f.setVisible(true);

}

}

自己帖出来自己看看先
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
我想用一个方法,就是说第一个点完.在点第二个的时候,append的所有的文本下面加,这个点完一个是一个,不会出现乱了的那种情况了.

但是不知道怎么加...
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
点第二个的时候,应该是在所有文本下面出来第二个的信息,但是,因为我用了循环.点第二份餐的时候,出现到了第一个下面(运行一下很容易发现).价钱也乱了.
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
是的,没有报错.呵呵.[Quote=引用 6 楼 john_sheep 的回复:]
至少是没有报错
[/Quote]
大河V5 2008-04-10
  • 打赏
  • 举报
回复
出什么错啊?
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
点第一个的时候没问题,但是问题出在第二个.
guofei_gf 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dracularking 的回复:]
引用 1 楼 nihuajie05 的回复:
你把问题说出来...就这样怎么解决.很多人都是不好上QQ的

[/Quote]
约翰羊 2008-04-10
  • 打赏
  • 举报
回复
至少是没有报错
HOVERKSY 2008-04-10
  • 打赏
  • 举报
回复
那好,我贴出问题.


首先,这一个用JAVA写的GUI.我贴出代码,大家运行一下,看看是不是出错(当你点第二份的时候).

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



public class Pizza extends JFrame implements ItemListener, ActionListener{

private final int PTTITLES = 7,LTITLES = 7,MTITLES = 7,STITLES = 7;
private JPanel mainPanel = new JPanel(),
centerPanel = new JPanel(),
buttonPanel = new JPanel(),
pizzaTypePanel = new JPanel(),
largePanel = new JPanel(),
mediumPanel = new JPanel(),
smallPanel = new JPanel(),
ddPanel = new JPanel();
private JButton clear = new JButton("clear");
private JButton submit = new JButton("submit");
private JTextArea display = new JTextArea(10,20);
String s;
JCheckBox titlesp[] = new JCheckBox[PTTITLES];
JCheckBox titlesl[] = new JCheckBox[LTITLES];
JCheckBox titlesm[] = new JCheckBox[MTITLES];
JCheckBox titless[] = new JCheckBox[STITLES];
JTabbedPane jTabbedPane = new JTabbedPane();


public Pizza() {
pizzaTypePanel.setLayout(new GridLayout(7, 1));
largePanel.setLayout(new GridLayout(7, 1));
mediumPanel.setLayout(new GridLayout(7, 1));
smallPanel.setLayout(new GridLayout(7, 1));
pizzaTypePanel.setBorder(BorderFactory.createTitledBorder("Pizza Type"));
largePanel.setBorder(BorderFactory.createTitledBorder("Large"));
mediumPanel.setBorder(BorderFactory.createTitledBorder("Medium"));
smallPanel.setBorder(BorderFactory.createTitledBorder("Small"));
centerPanel.add(pizzaTypePanel);
centerPanel.add(largePanel);
centerPanel.add(mediumPanel);
centerPanel.add(smallPanel);
centerPanel.setLayout(new FlowLayout());
pack();
getContentPane().add(mainPanel);
pizzaType();
largemoney();
mediummoney();
smallmoney();
buttonPanel.add(clear);
buttonPanel.add(submit);
mainPanel.add(jTabbedPane);
mainPanel.add(display);
clear.addActionListener(this);
submit.addActionListener(this);
mainPanel.add(buttonPanel);
mainPanel.setLayout(new GridLayout(3, 1));
jTabbedPane.addTab("Pizza Type", null, centerPanel, null);
jTabbedPane.addTab("声明", null, ddPanel, null);

}

public void pizzaType() {

String titleLabelsPT[] =
{"Super Special", "Marinara",
"Vegetarian","Hawaiian","Meat Lovers","Chicken","Extra Topping"};

for(int k = 0; k < titleLabelsPT.length; k++) {
titlesp[k] = new JCheckBox(titleLabelsPT[k]);
titlesp[k].addItemListener(this);
pizzaTypePanel.add(titlesp[k]);
}}

public void largemoney() {

String titleLabelsLM[] =
{"8.00", "8.00",
"8.00","8.00","8.00","8.00","8.00"};

for(int k = 0; k < titleLabelsLM.length; k++) {
titlesl[k] = new JCheckBox(titleLabelsLM[k]);
titlesl[k].addItemListener(this);
largePanel.add(titlesl[k]);
}}

public void mediummoney() {

String titleLabelsMM[] =
{"6.50", "6.50",
"6.50","6.50","6.50","6.50","6.50"};

for(int k = 0; k < titleLabelsMM.length; k++) {
titlesm[k] = new JCheckBox(titleLabelsMM[k]);
titlesm[k].addItemListener(this);
mediumPanel.add(titlesm[k]);
}}

public void smallmoney() {

String titleLabelsSM[] =
{"5.00", "5.00",
"5.00","5.00","5.00","5.00","5.00"};

for(int k = 0; k < titleLabelsSM.length; k++) {
titless[k] = new JCheckBox(titleLabelsSM[k]);
titless[k].addItemListener(this);
smallPanel.add(titless[k]);
}}


public void itemStateChanged(ItemEvent e) {
display.setText("Your order so far ");
for (int k = 0; k < titlesp.length; k++ )
if (titlesp[k].isSelected())

display.append( titlesp[k].getText() + "\n");

for (int k = 0; k < titlesl.length; k++ )
if (titlesl[k].isSelected())
display.append(" Large (" + titlesl[k].getText() + ")");
for (int k = 0; k < titlesm.length; k++ )
if (titlesm[k].isSelected())
display.append(" Medium (" + titlesm[k].getText() + ")");
for (int k = 0; k < titless.length; k++ )
if (titless[k].isSelected())
display.append(" Small (" + titless[k].getText() + ")");

}

public void actionPerformed(ActionEvent e){
String label = submit.getText();
if (e.getSource() == submit) {
if (label.equals("Submit Order")) {
display.append("Thank you. Press 'Confirm' to submit for your order!\n");
submit.setText("Confirm Order");
} else {
display.append("Thank you. You will receive your order tomorrow!\n");
submit.setText("Submit Order");
}
} else
display.setText("Thank you. Maybe we can serve you next time!\n");
}

public static void main(String[] args) {
Pizza f = new Pizza();
f.setSize(600, 750);

f.setVisible(true);

}

}
valen_jia 2008-04-10
  • 打赏
  • 举报
回复
7262662
dracularking 2008-04-10
  • 打赏
  • 举报
回复
其实综合效果和效率 板聊未必差的
dracularking 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nihuajie05 的回复:]
你把问题说出来...就这样怎么解决.很多人都是不好上QQ的
[/Quote]
nihuajie05 2008-04-10
  • 打赏
  • 举报
回复
你把问题说出来...就这样怎么解决.很多人都是不好上QQ的

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧