Добавить функциональность GUI в класс Java - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть класс 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 КОТОРЫХ обработают элементы графического интерфейса пользователя Я знаю, что НЕСЕТ нужно добавить ACTION слушатель два классов КНИГИ И КНИЖНАЯ ПОЛКА И ТРЕТИЙ КЛАСС БУДУТ РАБОТАТЬ С ОТОБРАЖЕНИЕМ, НО УЖЕ УЖАСНО НАЧИНАЮТСЯ. НЕКОТОРАЯ ПОМОЩЬ ПОЛУЧЕНИЕ ИДЕТ И ПОЯСНЯЕТ, КАК КЛАСС ДИСПЛЕЯ «ГОВОРИТ» С МЕТОДАМИ КНИГИ И КНИЖНОЙ ПОЛКИ, БУДУТ ДЕЙСТВИТЕЛЬНО ЦЕНЫ. СПАСИБО, G, ЧТОБЫ ОТВЕТИТЬ НА ВОПРОС 'HOVERCRAFTS', САМАЯ БОЛЬШАЯ ПРОБЛЕМА, КОТОРАЯ Я УЧАСТВУЮ В ЭТОМ ПРОЕКТЕ, НАЧИНАЕТ ЧАСТИ 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;
    }

}

Ответы [ 2 ]

2 голосов
/ 08 февраля 2011

Вы должны взглянуть на это руководство, чтобы начать создавать графические пользовательские интерфейсы с Java:

http://download.oracle.com/javase/tutorial/uiswing/

1 голос
/ 08 февраля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...