Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编译器问题_Java_Swing_Compiler Errors - Fatal编程技术网

Java 编译器问题

Java 编译器问题,java,swing,compiler-errors,Java,Swing,Compiler Errors,我开始开发的Java程序遇到了一些问题。这将是一个在线订购系统的霍尼杜克斯糖果店的哈利波特名声,并将是两个独立的程序。客户机程序将处于Swing状态,并接受订单和所有这些,在订单发出时将其发送给服务器程序。服务器程序的美观程度将大大降低,其目标是在给运行良好的客户端程序开绿灯之前将订单写入文本文件 对于客户端程序,我希望有三个面板,主面板包含另外两个。左侧是invntryPanel,其中包含一个包含商店库存的JList。右侧将放置infoPanel,它使用CardLayout在各个面板之间进行更

我开始开发的Java程序遇到了一些问题。这将是一个在线订购系统的霍尼杜克斯糖果店的哈利波特名声,并将是两个独立的程序。客户机程序将处于Swing状态,并接受订单和所有这些,在订单发出时将其发送给服务器程序。服务器程序的美观程度将大大降低,其目标是在给运行良好的客户端程序开绿灯之前将订单写入文本文件

对于客户端程序,我希望有三个面板,主面板包含另外两个。左侧是invntryPanel,其中包含一个包含商店库存的JList。右侧将放置infoPanel,它使用CardLayout在各个面板之间进行更改,使用JList中当前选定的项目确定要显示的面板。infoPanel还将用于用户选择希望购买的数量

当用户下单后,我可以点击一个按钮,该按钮的位置我还没有完全确定,它会弹出一个单独的窗口,询问一般信息(姓名等),并显示他们的总数。最后单击该窗口上的按钮将向服务器程序发送订单,客户端应用程序将在收到服务器程序发出的请求通过的确认后关闭

我已经开始了,但是编译器今天似乎心情不好。我做错了什么

我为这是一个以自我为中心的问题而道歉,但我真的不知道该向哪里求助。我已经检查了多个其他资源,我的代码似乎是有序的,但显然不是

先谢谢你

资料来源:

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

public class ClientApp extends JFrame
{
    public static void main(String[] args)
    {
        new ClientApp();
    }


    public ClientApp()
    {
        this.setSize(320,200);
        this.setTitle("Honeydukes Candy Order");
        this.setDefaultCloseOperation(
            JFrame.EXIT_ON_CLOSE);

        ButtonListener bl = new ButtonListener();

        JPanel mainPanel = new JPanel();
        JPanel infoPanel = new JPanel(new CardLayout());
        JPanel invntryPanel = new JPanel();

        String[] candy = {"Acid Pops", "Bat's Blood Soup",
                          "Bertie Bott's Every Flavour Beans",
                          "Blood-flavoured Lollipops",
                          "Cauldron Cakes", "Charm Choc",
                          "Chocoballs", "Chocolate Cauldrons",
                          "Chocolate Frogs", "Chocolate Skeletons",
                          "Chocolate Wands", "Choco-Loco", "Cockroach Clusters",
                          "Nougat", "Crystallised Pineapple",
                          "Drooble's Best Blowing Gum", "Exploding Bonbons",
                          "Toffees", "Fizzing Whizzbees",
                          "Fudge Flies", "Ice Mice",
                          "Jelly Slugs", "Liquourice Wands",
                          "Pepper Imps", "Peppermint Toads",
                          "Pink Coconut Ice", "Pixie Puffs",
                          "Pumpkin Fizz", "Salt Water Taffy",
                          "Shock-o-Choc", "Skeletal Sweets",
                          "Splindle's Lick'O'Rish Spiders",
                          "Sugar Quills", "Sugared Butterfly Wings",
                          "Toothflossing Stringmints", "Tooth-Splintering Strongmints",
                          "Treacle Fudge", "Chocolates", "Wizochoc"};
        JList candyList = new JList(candy);
        candyList.setVisibleRowCount(candy.length);
        candyList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane scroll = new JScrollPane(candyList);
        invntryPanel.add(scroll);
        mainPanel.add(invntryPanel);
        this.setVisible(true);
    }
}
错误:

ClientApp.java:20: error: cannot find symbol
                BasicButtonListener bl = new BasicButtonListener();
                ^
  symbol:   class BasicButtonListener
  location: class ClientApp
ClientApp.java:20: error: cannot find symbol
                BasicButtonListener bl = new BasicButtonListener();
                                             ^
  symbol:   class BasicButtonListener
  location: class ClientApp
Note: ClientApp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

从这个开始怎么样:

String[] candy = new String[38];
String[] candy = {"Acid Pops", "Bat's Blood Soup", /* ... */ };
您试图在同一范围内声明同一变量两次。你不能那样做。只要去掉第一个声明,第二个就可以了

(提示:去掉数字38的硬编码两次。如果您想知道数组有多少个元素,请使用
candy.length

编辑:现在我们已经看到了编译器错误,您还需要:

  • 按照格林纳的回答来安装阵列元素
  • 找出你所说的
    按钮列表器
    是什么意思。你是不是想用它来代替呢
  • 声明
    candyList
    变量(当前您只是尝试分配给它)
  • java.awt.CardLayout添加导入

您给出的错误相当清楚-除了candyList的多个问题,这些问题都是由于您缺少声明而造成的。

从以下几点开始如何:

String[] candy = new String[38];
String[] candy = {"Acid Pops", "Bat's Blood Soup", /* ... */ };
您试图在同一范围内声明同一变量两次。你不能那样做。只要去掉第一个声明,第二个就可以了

(提示:去掉数字38的硬编码两次。如果您想知道数组有多少个元素,请使用
candy.length

编辑:现在我们已经看到了编译器错误,您还需要:

  • 按照格林纳的回答来安装阵列元素
  • 找出你所说的
    按钮列表器
    是什么意思。你是不是想用它来代替呢
  • 声明
    candyList
    变量(当前您只是尝试分配给它)
  • java.awt.CardLayout添加导入

您给出的错误相当清楚-除了candyList的多个问题之外,所有这些问题都是因为您缺少声明。

您的candy数组中的“Pixie Puffs”
后面缺少一个逗号。我认为这使编译器相信行应该在那里结束(因此错误预期为
}
)。这也会导致表达式错误的非法开始。

您的糖果数组中的
“Pixie Puffs”
后缺少一个逗号。我认为这使编译器相信行应该在那里结束(因此错误预期为
}
)。这也会导致表达式错误的非法开始。

提示:每当你说编译器给你一个错误时,告诉我们该错误是什么。你键入了这么多文本,但忘记键入编译器所说的内容。提示:每当你说编译器给你一个错误时,告诉我们那个错误是什么。您键入了这么多文本,但忘记键入编译器所说的内容。@Sam在
“牙齿裂开的强力薄荷糖”
之后是否也缺少逗号?你现在有什么错误?有,虽然编译器似乎不介意,因为我(认为我)有和以前一样的错误。现在用新的源代码/错误更新主帖子。@对于第一个错误,Sam按照Jon Skeet的建议执行:替换
String[]candy=new String[38]
String[]candy={/*此处的所有字符串*/}。这将正确地实例化你的数组。啊,我现在明白了。完成了,这又减少了十个错误。我不太确定,但我认为剩下的可能是导入问题。@Sam听起来不错-至少编译器找不到这些类,所以请仔细检查您应该从何处导入它们。@Sam在
“牙齿分裂强力薄荷”之后是否也缺少逗号?你现在有什么错误?有,虽然编译器似乎不介意,因为我(认为我)有和以前一样的错误。现在用新的源代码/错误更新主帖子。@对于第一个错误,Sam按照Jon Skeet的建议执行:替换
String[]candy=new String[38]
String[]candy={/*此处的所有字符串*/}。这将正确地实例化你的数组。啊,我现在明白了。完成了,这又减少了十个错误。我不太确定,但我认为剩下的可能是导入问题