2011-02-07 3 views
0

У меня есть класс java, который я хочу добавить некоторые функции gui, чтобы я мог, например, вернуть названия книг или стоимость, я знаю, что мне нужно реализовать слушателей действий, но я нахожусь в потери относительно того, с чего начать, любые указатели будут высоко оценены. Код ниже -Добавить функциональность графического интерфейса для Java-класса

import java.text.*; 

public class Book 
{ 

    public static void main (String[] args) 
    { 

    } 

    // Instance variables 
    private String title, author, publisher; 
    private int year; 
    private double cost; 

    /** 
    * Book constructor that initialises the instance variables based on user input. 
    * 
    * @param title  The title of the book 
    * @param author The author of the book 
    * @param year  The year the book was published 
    * @param publisher The name of the publisher of the book 
    * @param cost  The cost of the book 
    */ 
    public Book(String title, String author, int year, String publisher, double cost) 
    { 
     this.title = title; 
     this.author = author; 
     this.year = year; 
     this.publisher = publisher; 
     this.cost = cost; 
    } 

    /** 
    * Accessor for the title of the book. 
    * @return the title of the book. 
    */ 
    public String getTitle() 
    { 
     return title; 
    } 

    /** 
    * Accessor for the author of the book. 
    * @return the author of the book. 
    */ 
    public String getAuthor() 
    { 
     return author; 
    } 

    /** 
    * Accessor for the year the book was published. 
    * @return the year the book was published. 
    */  
    public int getYear() 
    { 
     return year; 
    } 

    /** 
    * Accessor for the publisher of the book. 
    * @return the publisher of the book. 
    */  
    public String getPublisher() 
    { 
     return publisher; 
    } 

    /** 
    * Accessor for the cost of the book. 
    * @return the cost of the book. 
    */  
    public double getCost() 
    { 
     return cost; 
    } 

    /** 
    * Mutator for updating the title of the book. 
    * @param title The new title of the book. 
    */ 
    public void setTitle(String title) 
    { 
     this.title = title; 
    } 

    /** 
    * Mutator for updating the author of the book. 
    * @param author The new author of the book. 
    */ 
    public void setAuthor(String author) 
    { 
     this.author = author; 
    } 

    /** 
    * Mutator for updating the year of the book. 
    * @param year The new year of the book. 
    */ 
    public void setYear(int year) 
    { 
     this.year = year; 
    } 

    /** 
    * Mutator for updating the publisher of the book. 
    * @param publisher The new publisher of the book. 
    */  
    public void setPublisher(String publisher) 
    { 
     this.publisher = publisher; 
    } 

    /** 
    * Mutator for updating the cost of the book. 
    * @param cost The new cost of the book. 
    */  
    public void setCost(double cost) 
    { 
     this.cost = cost; 
    } 


    /** 
    * The standard toString method that returns the details of the book 
    * @return the details of the book formatted as a String. 
    */ 
    public String toString() 
    { 
     return "The details of the book are: " + title + 
       ", " + author + ", " + year + ", " + publisher + ", " + cost; 
    } 

} 

Edit:

HI, ВОТ Второй класс это СКЛАД для книг - Я полагаю, мне нужно создать третий класс под названием что-то вроде BOOKDISPLAY КОТОРЫХ обработает элементы графического интерфейса I ЗНАЙТЕ, ЧТО Я ПРИНИМАЮ, ЧТО Я ДОЛЖЕН ДОБАВИТЬ ДЕЙСТВУЮЩИХ ПРОСЛУШИВАНИЙ К ДРУГИМ КЛАССАМ КНИГИ И КНИГИ, И ТРЕТИЙ КЛАСС СДЕЛАЛ С ДИСПЛЕЕМ, НО У меня НАХОДИТСЯ УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ. НЕКОТОРЫЕ ПОМОЩИ, ПОЛУЧАЮЩИЕ ИСКЛЮЧЕНИЕ И РАЗВИВАЮЩИЕСЯ, КАК КЛАСС ДИСПЛЕЯ ОБРАЩАЕТСЯ К МЕТОДАМ В КНИГИ И КНИЖНОМ ХОРОШЕ, БЫЛО ДЕЙСТВИТЕЛЬНО ОЦЕНИВАЕТСЯ. СПАСИБО, G ОТВЕТЬТЕ ВОПРОС «ВОСПИТАНИЕ» БОЛЬШУЮ ПРОБЛЕМУ, КОТОРУЮ Я ИМЕЮ С ЭТИМ ПРОЕКТОМ, НАЧИНАЕТСЯ НАЧАЛО РАБОТЫ GUI И ПРОСМОТРОВ!

import java.util.ArrayList; 

public class BookShelf 
{ 
    //create an ArrayList of Book. 
    private ArrayList<Book> books; 

    public BookShelf() 
    {  
     books = new ArrayList<Book>(); 
    } 

    /** 
    * This method adds a Book object to the ArrayList 
    * 
    * @param theBook The book object that will be added to the ArrayList 
    * 
    */ 
    public void addBook(Book theBook) 
    { 
     books.add(theBook); 
    } 

    /** 
    * This method returns the size of the ArrayList, that is, the number of books 
    * that have been added to the ArrayList 
    * 
    * @return The size of the ArrayList 
    */ 
    public int sizeOfBookshelf() 
    { 
     return books.size(); 
    } 

    /** 
    * This method calculates the cost of the book shelf, that is, it totals the 
    * cost of all the books in the ArrayList and returns it. 
    * 
    * @return The cost of the book shelf 
    */ 
    public double costOfBookshelf(){ 

     double total = 0; 

     for(Book book : books) { 
      total = total + book.getCost(); 
     } 
     return total; 
    } 


    //create a method called highestPricePAid that will return the cost of the most expensive book in the ArrayList 

    /** 
    * This method finds the price of the most expensive book in the ArrayList and returns it. 
    * 
    * @return The cost of the most expensive book on the book shelf 
    */ 
    public double highestPricePaid(){ 

     double highestPrice = 0; 

     for(Book book : books) { 

      if((highestPrice == 0) || (highestPrice < book.getCost())) { 
       highestPrice = book.getCost(); } 
     } 

     return highestPrice; 
    } 

} 
+0

Gustav, я объединил ваши счета, чтобы вы могли оставлять комментарии к этому сообщению и любые ответы сейчас. Спасибо, @jjnguy. –

ответ

1

Я думаю, что, прежде чем создать свой графический интерфейс, вы хотите, чтобы сначала создать в по меньшей мере, один другой класс без GUI, который обрабатывает коллекцию книг, таких как библиотека классов или BookStore, в зависимости от ваших потребностей, со всеми необходимыми функциями. Тогда я бы использовал этот класс как ядро ​​или «модель» графического интерфейса.

В противном случае вам будет сложно дать конкретные рекомендации о том, как создать графический интерфейс без особых вопросов. Какова самая большая проблема при завершении этой программы/задании? Кроме того, как и в любой логике программирования, планируйте перед кодированием, решайте небольшие шаги по одному.

+1

Спасибо за совет, я сделаю это повторно. оттуда создается хранилище для книг. G – Simon

+0

Звучит неплохо. Пожалуйста, сообщите нам, если у вас есть дополнительные вопросы. Вы можете отредактировать и изменить свой исходный вопрос, если это необходимо. –

Смежные вопросы