Java 如何在复选框中输入值
这是我的代码,我只想做一个收据,当你选中复选框时,里面有值,它会连续打印带有值的标签Java 如何在复选框中输入值,java,swing,checkbox,Java,Swing,Checkbox,这是我的代码,我只想做一个收据,当你选中复选框时,里面有值,它会连续打印带有值的标签 import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; public class GUI extends JFrame implements ActionListener
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GUI extends JFrame implements ActionListener
{
private JLabel label;
private JCheckBox checkbox,checkbox2,checkbox3,checkbox4,checkbox5,
checkbox6,checkbox7,checkbox8,checkbox9,
checkbox10,checkbox11,checkbox12,checkbox13,checkbox14,checkbox15,
checkbox16,checkbox17,checkbox18,checkbox19,checkbox20;
private JButton button;
public GUI()
{
Container pane= getContentPane();
pane.setLayout(new GridLayout(15,1));
JPanel jp= new JPanel();
label= new JLabel("McDonald's");
checkbox = new JCheckBox("Cheese Burger");
checkbox2 = new JCheckBox("Big Mac");
checkbox3 = new JCheckBox("Big n' Tasty");
checkbox4 = new JCheckBox("McSpicy");
checkbox5 = new JCheckBox("Quarter Pounder with Cheese");
checkbox6 = new JCheckBox("Double Cheeseburger");
checkbox7 = new JCheckBox("McChicken Sandwich");
checkbox8 = new JCheckBox("Filet-O-Fish");
checkbox9 = new JCheckBox("Cheeseburger Deluxe");
checkbox10 = new JCheckBox("Burger Mcdo");
checkbox11 = new JCheckBox("Chicken Filet with Drinks");
checkbox12 = new JCheckBox("Spaghetti with Drinks");
checkbox13 = new JCheckBox("Hot Fudge Sundae ");
checkbox14 = new JCheckBox("Caramel Sundae");
checkbox15 = new JCheckBox("Large Mcdo French Fries");
checkbox16 = new JCheckBox("Chicken Nuggets with coke");
checkbox17 = new JCheckBox("Coke Float");
checkbox18 = new JCheckBox("Green Apple Float");
checkbox19 = new JCheckBox("Crispy Chicken with rice");
checkbox20 = new JCheckBox("Oreo Sundae");
button = new JButton("Order Now");
add(label);
pane.add(checkbox);
pane.add(checkbox2);
pane.add(checkbox3);
pane.add(checkbox4);
pane.add(checkbox5);
pane.add(checkbox6);
pane.add(checkbox7);
pane.add(checkbox8);
pane.add(checkbox9);
pane.add(checkbox10);
pane.add(checkbox11);
pane.add(checkbox12);
pane.add(checkbox13);
pane.add(checkbox14);
pane.add(checkbox15);
pane.add(checkbox16);
pane.add(checkbox17);
pane.add(checkbox18);
pane.add(checkbox19);
pane.add(checkbox20);
add(button);
add(jp, BorderLayout.SOUTH);
label.setHorizontalAlignment(JLabel.CENTER);
button.setSize(10,10);
button.addActionListener(this);
setSize(500,550);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String gulp = e.getActionCommand();
{
if ( gulp.equals("Order Now"))
{
new Receipt();
setVisible(true);
dispose();
}
}
}
public static void main(String[] args)
{
GUI r= new GUI();
}
}
这是我的第二个代码,这是我想要实现的收据格式
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Receipt extends JFrame
{
private JLabel label,label2,label3,label4,label5,
label6,label7,label8,label9,label10;;
public Receipt()
{
Container pane= getContentPane();
pane.setLayout(new GridLayout(13,1));
label= new JLabel("MC DONALD'S");
label2= new JLabel("McDonald's Tandang Sora");
label3= new JLabel("#22 Tandang Sora Corner, Commonwealth Avenue, Quezon City");
label4= new JLabel("Telephone# (02)86236");
label5= new JLabel("MACHINE SERIAL NUMBER: D123HJ01");
label6= new JLabel("Card Issuer: Sharina Tortoles");
label7= new JLabel("Account Number# 337163990");
label8= new JLabel("February 22, 2014 12:45");
label9= new JLabel("Thank You for choosing Mcdonald's");
label10= new JLabel("Please come again");
label.setHorizontalAlignment(JLabel.CENTER);
label2.setHorizontalAlignment(JLabel.CENTER);
label3.setHorizontalAlignment(JLabel.CENTER);
label4.setHorizontalAlignment(JLabel.CENTER);
label5.setHorizontalAlignment(JLabel.CENTER);
label6.setHorizontalAlignment(JLabel.CENTER);
label7.setHorizontalAlignment(JLabel.CENTER);
label8.setHorizontalAlignment(JLabel.CENTER);
label9.setHorizontalAlignment(JLabel.CENTER);
label10.setHorizontalAlignment(JLabel.CENTER);
pane.add(label, BorderLayout.NORTH);
pane.add(label2);
pane.add(label3);
pane.add(label4);
pane.add(label5);
pane.add(label6);
pane.add(label7);
pane.add(label8);
pane.add(label9);
pane.add(label10);
setSize(500,500);
setVisible(true);
}
public static void main(String[] args)
{
Receipt g= new Receipt();
}
}
希望您能清楚地知道我希望如何使用代码我想
EnumSet
就是您想要的:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.List;
import javax.swing.*;
enum Receipt {
CheeseBurger("Cheese Burger"),
BigMac("Big Mac"),
BigNTasty("Big n' Tasty"),
McSpicy("McSpicy"),
QuarterPounderWithCheese("Quarter Pounder with Cheese"),
DoubleCheeseburger("Double Cheeseburger"),
McChickenSandwich("McChicken Sandwich");
//JCheckBox("Filet-O-Fish"),
//JCheckBox("Cheeseburger Deluxe"),
//JCheckBox("Burger Mcdo"),
//JCheckBox("Chicken Filet with Drinks"),
//JCheckBox("Spaghetti with Drinks"),
//JCheckBox("Hot Fudge Sundae "),
//JCheckBox("Caramel Sundae"),
//JCheckBox("Large Mcdo French Fries"),
//JCheckBox("Chicken Nuggets with coke"),
//JCheckBox("Coke Float"),
//JCheckBox("Green Apple Float"),
//JCheckBox("Crispy Chicken with rice"),
//JCheckBox("Oreo Sundae");
private final String str;
private Receipt(String str) {
this.str = str;
}
@Override public String toString() {
return str;
}
}
public class GUI2 {
private JButton button = new JButton(new AbstractAction("Order Now") {
@Override public void actionPerformed(ActionEvent e) {
EnumSet<Receipt> r = EnumSet.noneOf(Receipt.class);
for (ReceiptCheckBox c: list) {
if (c.isSelected()) {
r.add(c.getReceipt());
}
}
JOptionPane.showMessageDialog((JComponent) e.getSource(), r);
}
});
private List<ReceiptCheckBox> list = new ArrayList<>(Receipt.values().length);
public JComponent makeUI() {
JPanel p = new JPanel();
for (Receipt r: Receipt.values()) {
ReceiptCheckBox c = new ReceiptCheckBox(r);
list.add(c);
p.add(c);
}
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel("McDonald's"), BorderLayout.NORTH);
panel.add(button, BorderLayout.SOUTH);
panel.add(p);
return panel;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new GUI2().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
class ReceiptCheckBox extends JCheckBox {
private final Receipt receipt;
public ReceiptCheckBox(Receipt receipt) {
super(receipt.toString());
this.receipt = receipt;
}
public Receipt getReceipt() {
return receipt;
}
}
import java.awt.*;
导入java.awt.event.*;
导入java.util.*;
导入java.util.List;
导入javax.swing.*;
枚举收据{
奶酪汉堡(“奶酪汉堡”),
巨无霸(“巨无霸”),
BigNTasty(“Big n'Tasty”),
麦香辣(“麦香辣”),
四分之一磅奶酪(“四分之一磅奶酪”),
双芝士汉堡(“双芝士汉堡”),
麦基肯三明治(“麦基肯三明治”);
//JCheckBox(“菲力鱼”),
//JCheckBox(“豪华奶酪汉堡”),
//JCheckBox(“汉堡麦当劳”),
//JCheckBox(“鸡柳配饮料”),
//JCheckBox(“饮料意大利面”),
//JCheckBox(“热软糖圣代”),
//JCheckBox(“焦糖圣代”),
//JCheckBox(“大型麦当劳薯条”),
//JCheckBox(“可乐鸡块”),
//JCheckBox(“焦炭浮子”),
//JCheckBox(“绿苹果浮动”),
//JCheckBox(“脆鸡饭”),
//JCheckBox(“奥利奥圣代”);
私有最终字符串str;
私人收据(字符串str){
this.str=str;
}
@重写公共字符串toString(){
返回str;
}
}
公共类GUI 2{
私有JButton按钮=新JButton(新抽象操作(“立即订购”){
@覆盖已执行的公共无效操作(ActionEvent e){
EnumSet r=EnumSet.noneOf(Receipt.class);
用于(接收复选框c:列表){
如果(c.isSelected()){
r、 添加(c.getReceipt());
}
}
showMessageDialog((JComponent)e.getSource(),r);
}
});
私有列表=新的ArrayList(Receipt.values().length);
公共JComponent makeUI(){
JPanel p=新的JPanel();
对于(收据r:Receipt.values()){
ReceiptCheckBox c=新的ReceiptCheckBox(r);
增加(c)项;
p、 添加(c);
}
JPanel panel=newjpanel(newborderlayout());
面板。添加(新JLabel(“麦当劳”),BorderLayout。NORTH);
面板。添加(按钮,边框布局。南);
小组委员会.添加(p);
返回面板;
}
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
@重写公共无效运行(){
createAndShowGUI();
}
});
}
公共静态void createAndShowGUI(){
JFrame f=新的JFrame();
f、 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f、 getContentPane().add(新GUI2().makeUI());
f、 设置大小(320240);
f、 setLocationRelativeTo(空);
f、 setVisible(真);
}
}
类ReceiptCheckBox扩展了JCheckBox{
私人最终收据;
公共收据复选框(收据){
super(receipt.toString());
这个。收据=收据;
}
公共收据getReceipt(){
回执;
}
}
“希望您能清楚地知道我希望在代码中发生什么”-事实并非如此。你还没问过一个问题。什么不起作用?我的水晶球显示:对于在GUI
中选中的每个复选框,您希望在收据
框架中添加一个JLabel
。此标签应包含与所选相应复选框的字符串相同的字符串。这是正确的吗?是的。我还希望在收据框中看到复选框的值,以及与复选框相同字符串的标签。