- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将书籍、CD 或 DVD 三个项目之一存储到数组中,但我的添加方法不起作用。
这是 GUI 类。
/**
Class BookStoreApplication GUI represents a book store.
It gives the user the option to
- add a book to the store's inventory
- list all books in the store's inventory
Author: YOUR FULL NAME HERE
E-mail address: YOUR E-MAIL ADDRESS
Last changed: TODAY'S DATE
Lab 01
*/
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.TextArea;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.layout.BorderPane;
import javafx.geometry.Pos;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
public class BookStoreGUI extends Application {
private String title;
private String author;
private double price;
private static int pages;
private static int playingTime;
private Label titleLabel;
private Label authorLabel;
private Label priceLabel;
private TextField titleTextField;
private TextField authorTextField;
private TextField priceTextField;
private GridPane inputGrid;
private RadioButton BookRadioButton;
private RadioButton CDRadioButton;
private RadioButton DVDRadioButton;
private VBox RadioVBox;
private ToggleGroup mediaGroup;
private Button addItemButton;
private Button displayInventoryButton;
private HBox buttonHBox;
private TextArea outputText;
private BookStoreHandler handler;
private Stage maessageWindow;
private GridPane topGrid;
private BorderPane mainPane;
private static int count = 0;
private static BookStoreItem[] Catalog;
public void start(Stage primaryStage) {
createInputComponents();
createOutputComponents();
createButtons();
createWindow();
Scene scene = new Scene(mainPane, 400, 500);
primaryStage.setTitle("Book Sotre");
primaryStage.setScene(scene);
primaryStage.show();
}
private void createInputComponents(){
titleLabel = new Label("Title");
authorLabel = new Label("Author's name");
priceLabel = new Label ("Price");
titleTextField = new TextField();
authorTextField = new TextField();
priceTextField = new TextField();
inputGrid = new GridPane();
inputGrid.setHgap(15);
inputGrid.setVgap(15);
inputGrid.add(titleLabel, 0 , 0);
inputGrid.add(titleTextField, 1, 0);
inputGrid.add(authorLabel, 0, 1);
inputGrid.add(authorTextField, 1, 1);
inputGrid.add(priceLabel, 0 , 2);
inputGrid.add(priceTextField, 1, 2);
CDRadioButton = new RadioButton("CD");
BookRadioButton = new RadioButton("Book");
DVDRadioButton = new RadioButton("DVD");
mediaGroup = new ToggleGroup();
CDRadioButton.setToggleGroup(mediaGroup);
BookRadioButton.setToggleGroup(mediaGroup);
DVDRadioButton.setToggleGroup(mediaGroup);
BookRadioButton.setSelected(true);
RadioVBox = new VBox(15);
RadioVBox.getChildren().add(CDRadioButton);
RadioVBox.getChildren().add(BookRadioButton);
RadioVBox.getChildren().add(DVDRadioButton);
topGrid = new GridPane();
topGrid.setHgap(20);
topGrid.setAlignment(Pos.CENTER);
topGrid.add(inputGrid, 0, 0);
topGrid.add(RadioVBox, 1, 0);
}
private void createOutputComponents () {
outputText = new TextArea();
outputText.setEditable(false);
}
private void createButtons() {
addItemButton = new Button("Add Item");
displayInventoryButton = new Button("Display Inventory");
addItemButton.setPrefSize(100, 50);
displayInventoryButton.setPrefSize(100, 50);
buttonHBox = new HBox(100);
buttonHBox.setAlignment(Pos.CENTER);
buttonHBox.getChildren().add(addItemButton);
buttonHBox.getChildren().add(displayInventoryButton);
handler = new BookStoreHandler();
addItemButton.setOnAction(handler);
displayInventoryButton.setOnAction(handler);
}
private void createWindow() {
mainPane = new BorderPane();
mainPane.setTop(topGrid);
mainPane.setCenter(outputText);
mainPane.setBottom(buttonHBox);
}
private class BookStoreHandler implements EventHandler<ActionEvent> {
public void handle(ActionEvent ae) {
BookStoreItem media;
if(ae.getSource () == addItemButton){
outputText.setText("");
title = titleTextField.getText().trim();
author = authorTextField.getText().trim();
price = Double.parseDouble(priceTextField.getText().trim());
if (CDRadioButton.isSelected()){
media = new CD(title, author, price, 0);
}
else if(DVDRadioButton.isSelected()) {
media = new DVD(title, author, price, 0);
}
else {
media = new Book(title, author, price, 0);
}
Catalog = Catalog.add(media);
}
}
}
}
这是我的错误消息。BookStoreGUI.java:210: 错误: 找不到符号 目录 = Catalog.add(media); ^ 符号:方法add(BookStoreItem) 位置:BookStoreItem 类型的变量目录1 个错误
她是 add 方法所来自的目录类。
public class Catalog {
private BookStoreItem[] inventory;
private final int CAPACITY = 100;
private int count;
public Catalog() {
inventory = new BookStoreItem[CAPACITY];
count = 0;
}
public void add(BookStoreItem newItem) {
inventory[count] = newItem;
count++;
}
public boolean isAvailable(String title) {
boolean found = false;
for (int i = 0;i < count && !found;i++) {
if (title.equals(inventory[i].getTitle())) {
found = true;
}
}
return found;
}
public BookStoreItem getItem(String title) {
BookStoreItem desiredItem = null;
boolean found = false;
for (int i = 0;i < count && !found;i++) {
if (title.equals(inventory[i].getTitle())) {
desiredItem = inventory[i];
found = true;
}
}
return desiredItem;
}
public BookStoreItem[] getList() {
return inventory;
}
}
最佳答案
首先,如果遵循 Java 命名约定,问题就会更少 - 目前 Catalog
既是数组变量名称又是类型名称。
其次,数组中没有add
方法。您可能需要一个List
,例如数组列表。或者,您可能只需要一个 Catalog
实例,例如
// This replaces your private static BookStoreItem[] Catalog; declaration
Catalog catalog = new Catalog();
然后您可以在您的 handle
方法中使用它:
catalog.add(media);
请注意,我已将其设为实例变量而不是静态变量 - 老实说,我怀疑您是否需要任何静态变量。
关于java - 为什么我总是收到找不到符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314190/
我不明白 int 63823 为何比 double 1.0 占用更少的空间。在这个特定实例中,int 中是否没有存储更多信息? 最佳答案 I don't understand how an int 6
这可能不是一个直接的代码问题,但它是一个经常出现在 SO 上的问题,我发现阅读它非常有用。 App Store - Help answering “Missing Compliance” (using
我在我们的应用程序中使用 syncfusion 寻呼机和下拉列表请打开以下链接。 https://stackblitz.com/edit/angular-nv6myv?file=src%2Fapp%2
以便解释指针和引用in this question我写了这段代码。 MyClass& MyClass::MyInstance() { static MyClass & myLoca
在 C 和 C++ 中,assert 是一个非常 重量级例程,将错误写入 stdout 并终止程序。在我们的应用程序中,我们实现了一个更强大的 assert 替代品,并为其提供了自己的宏。已尽一切努力
我已经创建了一个 MVC webApi 项目,现在我想使用身份验证和授权。我想我已经实现了这种安全措施,但由于某种原因,有些事情变糟了,当我编写我的凭据并尝试调用一些 webApi 方法时,显示消息“
我发现自己使用一种奇怪的方式向我的函数添加回调函数,我想知道是否有更通用的方式向函数添加回调函数,最好的情况是我的所有函数都检查最后给定的作为函数的参数,如果是,则将其用作回调。 我以前是这样的: v
几乎从来没有我只想获取某个 Remote 的情况;我总是想要所有的 Remote 。我认为这将是一个足够常见的用例,git 会考虑它(与他们有 pull.rebase true 的方式相同)。 那么,
我正在尝试使用 inarray 但它总是返回 true?有任何想法吗? (所有 li 均已显示) $("#select-by-color-list li").hide(); // get the se
我正在尝试为我公司的开发环境设置过期网址。我们使用 lighttpd在此环境中提供上传的文件,我发现 these docs这似乎相当有希望。 问题是我似乎根本无法让它工作,而且我有点不知所措,试图找出
我无法让“文件夹”外部变量工作。我总是得到[:]。 我正在 Windows 下的 Grails 上进行开发(这就是为什么外部配置文件看起来像 file:C:\path\to/file)。 我在另一个项
这个问题是出于对 PL 如何工作的好奇,而不是其他任何事情。 (它实际上是在查看与 Haskell 不同的 SML 时想到的,因为前者使用按值调用 - 但我的问题是关于 Haskell。) Haske
我有一个高速缓存内存模块,我希望它是可字寻址的,但有字节的写使能信号。 always @ (posedge clk) begin //stuff... if(write) begin
我正在处理一些代码,其中一个对象“foo”正在创建另一个对象对象“bar”,并向其传递一个Callable。之后 foo 将返回bar,然后我希望 foo 变得无法访问(即:可用于垃圾收集)。 我最初
我已将我的程序与此方法相关联: public static void CreateFileAssociation(string extension, string key, string descri
所以我正在进行目录遍历,但我无法让 opendir 按照我想要的方式工作。它总是无法打开我发送的目录,它给出了一些未知的错误。我通常传入 argv[1],但我放弃了,只是开始硬编码路径。 char *
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 9 年前。 出于某种原因,我的(基本)程序总是打印我为 else 语句保留的
我不想冒为此提出破解的风险,因为它涉及 datetime 对象。基本上,我想按如下方式进行转换: 2010-04-21 06:37:53 -> 2010-04-21 06:40:00 2010-08-
我正在用 C 语言玩文件 I/O。我正在尝试使用 fgets 从一个文件中读取数据并将其输出到另一个文件。问题是它总是返回 NULL,因此没有任何内容被复制到输出文件中。这是我的代码: #includ
class MyClass { // empty class with no base class }; int main() { MyClass* myClass = new MyC
我是一名优秀的程序员,十分优秀!