求大神解答这一道Java题 第20题 跪谢!

 我来答
老冯文库
2017-06-06 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

Java程序:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
 
public class Main extends JFrame implements ActionListener {
    JComboBox cmbMenu_All, cmbMenu_Selected;
    JButton btnAdd, btnRemove;
    JTextField txtNum;
    String[] menus = {"羊肉火锅", "狗肉火锅", "鱼仔火锅", "剁椒鱼头", "水煮活鱼",
     "柴火鱼", "酸辣鱼片", "茄子煲", "拨丝香蕉", "小炒肉",
     "小鸡炖蘑菇", "水煮肉片", "白斩鸡", "海带炖排骨", "熘丝瓜",
     "皮蛋煮苋菜", "醋溜土豆丝", "梅菜扣肉", "香芋地瓜丸", "凉拌藕尖"};
     
    public Main() {
        super("点菜");        
        this.setLayout(new FlowLayout());
        
        cmbMenu_All = new JComboBox(menus);
        cmbMenu_Selected = new JComboBox();
        btnAdd = new JButton(">>");
        btnRemove = new JButton("<<");
        txtNum = new JTextField(10);
        txtNum.setText("0");
        txtNum.setAlignmentX(CENTER_ALIGNMENT);
          
        this.add(cmbMenu_All);
        this.add(btnAdd);
        this.add(btnRemove);
        this.add(cmbMenu_Selected);
        this.add(txtNum);
        
        btnAdd.addActionListener(this);
        btnRemove.addActionListener(this);
        
        this.setSize(400, 200);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
     
    public static void main(String[] args) {
        new Main();
    }

@Override
public void actionPerformed(ActionEvent arg0) {
JButton btn = (JButton) arg0.getSource();
int num = Integer.parseInt(txtNum.getText().trim());
int i;

if(btn == btnAdd) {
for(i=0; i<cmbMenu_Selected.getItemCount(); i++) {
if(cmbMenu_Selected.getItemAt(i).toString().equals(cmbMenu_All.getSelectedItem().toString())) {
break;
}
}

if(i < cmbMenu_Selected.getItemCount()) {
return;
}

cmbMenu_Selected.addItem(cmbMenu_All.getSelectedItem());
num++;
txtNum.setText(String.valueOf(num));
}
else if(btn == btnRemove) {
cmbMenu_Selected.removeItemAt(cmbMenu_Selected.getSelectedIndex());
num--;
txtNum.setText(String.valueOf(num));
}
}
}


运行测试:

雪飞潇潇
2017-06-06 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:867万
展开全部

效果图

参考代码

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

public class MenuFrame extends JFrame implements ListSelectionListener {
JTextField jtf;
JList<String> jlist1, jlist2;
static final String[] CP = { "青椒土豆丝", "西红柿炒鸡蛋", "麻辣小龙虾", "鱼香肉丝", "西湖醋鱼", "红汤老火锅", "可乐", "茉莉花茶" };
DefaultListModel<String> dlm;//用dlm给jlist2动态添加数据

public MenuFrame() {
JPanel jpCenter = new JPanel(new GridLayout(1, 2));
jlist1 = new JList<String>(CP);
jlist1.addListSelectionListener(this);
JScrollPane jsp1 = new JScrollPane(jlist1);//滚动面板
jsp1.setBorder(BorderFactory.createTitledBorder("全部菜品"));//带标题的边框
jpCenter.add(jsp1);
jlist2 = new JList<String>();
dlm = new DefaultListModel<String>();
jlist2.setModel(dlm);
JScrollPane jsp2 = new JScrollPane(jlist2);
jsp2.setBorder(BorderFactory.createTitledBorder("已选菜品"));
jpCenter.add(jsp2);

add(jpCenter);
jtf = new JTextField(5);
jtf.setEnabled(false);
jtf.setText("0道");
JLabel jl = new JLabel("你已经选中的菜单数量是:");
JPanel jpSouth = new JPanel();
jpSouth.add(jl);
jpSouth.add(jtf);
add(jpSouth, BorderLayout.SOUTH);
setTitle("点菜");
setSize(300, 200);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
new MenuFrame();//启动窗口
}


public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
dlm.addElement(jlist1.getSelectedValue());//给dlm添加元素,更新jlist2的数据
jtf.setText(dlm.size()+"道");

}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式