java编写一个图形界面程序

如图。谢谢有点急。... 如图。谢谢 有点急。 展开
 我来答
yinfengnong
2018-01-14 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2302万
展开全部

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


class MainFrame extends JFrame {

private static final long serialVersionUID = 1L;

private Map<String, Integer> sizes = new HashMap<String, Integer>();

private Map<String, Integer> styles = new HashMap<String, Integer>();

private Map<String, Integer> toppings = new HashMap<String, Integer>();

public MainFrame() {

sizes.put("Extra Large", 10);
sizes.put("Large", 8);
sizes.put("Medium", 5);
sizes.put("Small", 3);

styles.put("Deep Dish", 20);
styles.put("Regular", 10);
styles.put("Thin Crust", 5);
styles.put("Chicago", 3);

toppings.put("Cheese", 8);
toppings.put("Tomato", 7);
toppings.put("Peppers", 6);
toppings.put("Peperoni", 5);

this.setTitle("布局及事件处理");
this.setSize(450, 350);
this.setLayout(new BorderLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel lblTitle = new JLabel();
lblTitle.setText("Pizzeria Juno");
lblTitle.setFont(new Font("宋体", Font.BOLD, 36));
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
this.add("North", lblTitle);

JPanel bodyPanel = new JPanel();
bodyPanel.setLayout(new GridLayout(2, 1));
this.add("Center", bodyPanel);

JPanel listPanel = new JPanel();
listPanel.setLayout(new GridLayout(1, 3));
listPanel.setSize(200, 200);
bodyPanel.add(listPanel);

Border lineBorder = BorderFactory.createLineBorder(Color.BLACK);

JPanel sizePanel = new JPanel();
sizePanel.setLayout(new BorderLayout());
listPanel.add(sizePanel);
JLabel sizeTitle = new JLabel();
sizeTitle.setText("Sizes");
sizePanel.add("North", sizeTitle);


JList sizeList = new JList(sizes.keySet().toArray());
sizeList.setSize(100, 100);
sizeList.setBorder(lineBorder);
sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sizePanel.add(sizeList);

JPanel stylePanel = new JPanel();
stylePanel.setLayout(new BorderLayout());
listPanel.add(stylePanel);
JLabel styleTitle = new JLabel();
styleTitle.setText("Styles");
stylePanel.add("North", styleTitle);
JList styleList = new JList(styles.keySet().toArray());
styleList.setSize(100, 100);
styleList.setBorder(lineBorder);
styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
stylePanel.add(styleList);

JPanel toppingPanel = new JPanel();
toppingPanel.setLayout(new BorderLayout());
listPanel.add(toppingPanel);
JLabel toppingTitle = new JLabel();
toppingTitle.setText("Toppings");
toppingPanel.add("North", toppingTitle);
JList toppingList = new JList(toppings.keySet().toArray());
toppingList.setSize(100, 100);
toppingList.setBorder(lineBorder);
toppingPanel.add(toppingList);

JTextArea txtResult = new JTextArea();
txtResult.setEditable(false);
bodyPanel.add(txtResult);

JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new GridLayout(1, 3));
this.add("South", bottomPanel);

JLabel label1 = new JLabel("Click to complete order");
bottomPanel.add(label1);

JButton btnRingUp = new JButton("Ring up");
btnRingUp.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {



if(sizeList.getSelectedValue() == null) {
JOptionPane.showMessageDialog(MainFrame.this, "Please select size.");
return;
}

if(styleList.getSelectedValue() == null) {
JOptionPane.showMessageDialog(MainFrame.this, "Please select style.");
return;
}

if(toppingList.getSelectedValue() == null) {
JOptionPane.showMessageDialog(MainFrame.this, "Please select topping.");
return;
}

float total = 0;

String size = sizeList.getSelectedValue().toString();
total += sizes.get(size);

String style = styleList.getSelectedValue().toString();
total += styles.get(style);

String result = size + " Pizza, " + style + " Style";

Object[] toppings = toppingList.getSelectedValues();
for(Object topping : toppings) {
result += "\n  +" + topping.toString();
total += MainFrame.this.toppings.get(topping.toString());
}

result += "\n  Total: " + total;

txtResult.setText(result);
}
});
bottomPanel.add(btnRingUp);

JButton btnQuit = new JButton("Quit");
btnQuit.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
MainFrame.this.dispose();
}
});
bottomPanel.add(btnQuit);
}

}

public class App {

public static void main(String[] args) {


MainFrame mainFrame = new MainFrame();
mainFrame.setVisible(true);

}

}
司马刀剑
高粉答主

2018-01-14 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7573万
展开全部
import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField; public class SimpleCalc extends JFrame { public static void main(String[] args) { new SimpleCalc(); } public SimpleCalc() { setSize(500, 200); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocationRelativeTo(null); init(); setVisible(true); } protected void init() { setTitle("Simple Calc"); JPanel p = new JPanel(); add(p); JTextField num1 = new JTextField(10); p.add(num1); p.add(new JLabel("+")); JTextField num2 = new JTextField(10); p.add(num2); p.add(new JLabel("=")); JTextField result = new JTextField(10); result.setEditable(false); p.add(result); JButton calc = new JButton("计算"); calc.addActionListener(new CalcListener(num1, num2, result)); p.add(calc); } class CalcListener implements ActionListener { private JTextField num1, num2, result; CalcListener(JTextField num1, JTextField num2, JTextField result) { this.num1 = num1; this.num2 = num2; this.result = result; } @Override public void actionPerformed(ActionEvent e) { try { double n = Double.parseDouble(num1.getText()) + Double.parseDouble(num2.getText()); result.setText(String.valueOf(n)); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网友了了了
2018-01-14 · TA获得超过944个赞
知道小有建树答主
回答量:1074
采纳率:33%
帮助的人:202万
展开全部
做好了吗
追答
需要的话
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神牛码农
2018-01-14 · 用技术行走在移动互联网时代
神牛码农
采纳数:297 获赞数:1178

向TA提问 私信TA
展开全部
文件写好了,私信我,发给你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e860d7f
2018-01-14 · TA获得超过314个赞
知道小有建树答主
回答量:245
采纳率:6%
帮助的人:55.8万
展开全部
文件资料我这有。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式