第一个Java Swing项目。我是在正确的轨道上还是完全走错了方向?

时间:2016-04-09 17:35:04

标签: java swing

嘿伙计们我得到了这个项目,我对它有几个问题..

以下是任务:

要求您创建基于GUI的应用程序,以便用户管理船队。该应用程序适用于代表不同客户管理船队的车队管理公司。

舰队由多艘船组成。最初没有车队或船只,但应用程序将允许用户添加车队。然后他们将能够为船队添加船只。有两种类型的船:乘客和货运。每个车队都有一个车队识别号码,拥有车队的公司名称,例如爱尔兰渡轮,零或多船。 每艘船都有一个名字,例如尤利西斯,以及工作人员数量。此外,每艘客船将具有载客量(不能载运的乘客),以及是否可以载车。每艘货船都有集装箱容量。

你应该创建一个Boat超类,它有两个子类PassengerBoat和FreightBoat。应该有一个整体FleetManagementCompany类,它可以有一个名称,例如FLeet Mgmt Ltd.,最多包含5个舰队(Fleet级)。舰队类将包含零或多艘船。

A部分

1. 基于GUI的应用程序应该允许用户创建车队管理公司记录。从理论上讲,它可以让您创建多个车队管理公司记录。

2. 它应该允许用户在车队管理公司中添加/删除车队。

3. 它应该允许用户从车队添加/删除船只。

B部分

车队管理公司还负责管理车队的航行时间表。应该有一套固定的航行路线和一套固定的航行时间和持续时间。

1。应用程序应该允许用户为船队安排每艘船的航行

2. 您可以自由设计自己的日程安排功能。

以下是我到目前为止所做的事情:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;import javax.swing.border.TitledBorder;

public class Boat extends JFrame 
{



/// JTextField text = new JTextField(""  ,50);
    private static String labelPrefixs = "Fleets made: ";
    private static String labelPrefixww = "Boats usbed: ";
    private static String labelPrefix = "Number of  boats added: ";

    private int numClicks = 0;
    private int numAmy = 0;
    JLabel adbf = new JLabel(labelPrefixww + "0    ");
    JLabel addb = new JLabel(labelPrefix + "0    "); 
    JLabel amys = new JLabel(labelPrefixs + "0    "); 


    public Boat(String title) 
    {
        super(title);

        // operation to do when the window is closed.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        setBounds(500, 500, 800, 400);
        JButton back = new JButton("Back to start!");
        JButton button = new JButton("Click here to see Fleets!");
        JButton book = new JButton("Add Boat!");
        JButton del = new JButton("Delete Boat!");
        JButton route = new JButton("Get routes!");
        final JLabel choss = new JLabel("Choose sea-line");
        final JLabel chost = new JLabel("Choose Type of boat");
        final JLabel chosb = new JLabel("Choose a boat");
         final JButton fer = new JButton("Irish ferries");
         final JButton ferr = new JButton("British ferries");
         final JButton pass = new JButton("Passanger");
         final JButton freig = new JButton("Freight");
         final JButton ifer = new JButton("Frank");
         final JButton iferr = new JButton("Amy");
         final JButton iferrr = new JButton("Jackson");
         final JButton addf = new JButton("Make a Fleet");


        addf.setFocusPainted(false);
        pass.setFocusPainted(false);
        freig.setFocusPainted(false);
        route.setFocusPainted(false);
        fer.setFocusPainted(false);
        ferr.setFocusPainted(false);
        ifer.setFocusPainted(false);
        iferr.setFocusPainted(false);
        iferrr.setFocusPainted(false);
        button.setFocusPainted(false);
        back.setFocusPainted(false);
        book.setFocusPainted(false);
        del.setFocusPainted(false);

        JPanel panel = new JPanel();
        button.setHorizontalAlignment(JButton.CENTER);


        JLabel ship1 = new JLabel( "<html><p>Owned By: Irish Fleets. <br></br> " + 
                                    "Class : B. <br></br>  " +
                                    "Passanger compacity: 300. <br></br>  " +
                                    "Seats available: 62. <br></br>     "+
                                    "Destination: Wonderland. <br></br> "+
                                    "Transport space: 5 cars. <br></br> "+" </p></html>");
        TitledBorder titled = new TitledBorder("Amy");
        ship1.setBorder(titled);
        add(ship1);

        JLabel ship2 = new JLabel( "<html><p>Owned By: Irish Fleets. <br></br> " + 
                                    "Class : A. <br></br>  " +
                                    "Passanger compacity: 200. <br></br>  " +
                                    "Seats available: 26. <br></br>     "+
                                    "Destination: Wonderland. <br></br> "+
                                    "Transport space: 15 cars. <br></br>    "+" </p></html>");
        TitledBorder titled1 = new TitledBorder("Frank");
        ship2.setBorder(titled1);
        add(ship2);

        panel.add(chost);
        panel.add(freig);
        panel.add(pass);
        panel.add(book);
        panel.add(del);
        panel.add(ship1);
        panel.add(ship2);
        panel.add(route);
        panel.add(button);
        panel.add(chosb);
        panel.add(choss);
        //panel.add(text)
        panel.add(fer);
        panel.add(ferr);
        panel.add(ifer);
        panel.add(iferr);
        panel.add(iferrr);
        panel.add(addb);
        panel.add(amys);
        panel.add(adbf);
        panel.add(back);
        panel.add(addf);

        adbf.setVisible(false);
        amys.setVisible(false);
        addb.setVisible(false);
        freig.setVisible(false);
        pass.setVisible(false);
        chost.setVisible(false);
        book.setVisible(false);
        del.setVisible(false);
        ship1.setVisible(false);
        ship2.setVisible(false);
        route.setVisible(true);
        back.setVisible(false);
        choss.setVisible(false);
        chosb.setVisible(false);
        fer.setVisible(false);
        ferr.setVisible(false);
        ifer.setVisible(false);
        iferr.setVisible(false);
        iferrr.setVisible(false);
        addf.setVisible(false);

        getContentPane().add(panel);

        setVisible(true);

        button.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());

            fer.setVisible(false);
            ferr.setVisible(false);
            choss.setVisible(false);
            button.setVisible(false);
            back.setVisible(true);
            route.setVisible(false);
            chost.setVisible(true);
            freig.setVisible(true);
            pass.setVisible(true);
            amys.setVisible(false);
            addf.setVisible(false);
            adbf.setVisible(false);

            }
        });
         pass.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());

            fer.setVisible(true);
            ferr.setVisible(true);
            choss.setVisible(true);
            button.setVisible(false);
            back.setVisible(true);
            route.setVisible(false);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            amys.setVisible(false);
            adbf.setVisible(false);
            }
        });
        fer.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());
            ifer.setVisible(true);
            iferr.setVisible(true);
            iferrr.setVisible(true);
            choss.setVisible(false);
            chosb.setVisible(true);
            fer.setVisible(false);
            ferr.setVisible(false);
            route.setVisible(false);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            addb.setVisible(true);
            amys.setVisible(false);
            adbf.setVisible(false);
            addf.setVisible(false);

            }
        });
        iferr.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());
            ifer.setVisible(true);
            iferr.setVisible(true);
            iferrr.setVisible(true);
            choss.setVisible(false);
            chosb.setVisible(false);
            fer.setVisible(false);
            ferr.setVisible(false);
            route.setVisible(false);
            iferr.setFocusPainted(true);
            ship1.setVisible(true);
            book.setVisible(true);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            addb.setVisible(true);
            ship2.setVisible(false);
            amys.setVisible(false);
            adbf.setVisible(false);
            addf.setVisible(false);
            }
        });
            ifer.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());
            ifer.setVisible(true);
            iferr.setVisible(true);
            iferrr.setVisible(true);
            choss.setVisible(false);
            chosb.setVisible(false);
            fer.setVisible(false);
            ferr.setVisible(false);
            route.setVisible(false);
            ifer.setFocusPainted(true);
            ship1.setVisible(false);
            ship2.setVisible(true);
            book.setVisible(true);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            addb.setVisible(true);
            adbf.setVisible(false);
            amys.setVisible(false);
            addf.setVisible(false);
            }
        });

        back.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());
            fer.setVisible(false);
            ferr.setVisible(false);
            button.setVisible(true);
            choss.setVisible(false);
            back.setVisible(false);
            chosb.setVisible(false);
            ifer.setVisible(false);
            iferr.setVisible(false);
            iferrr.setVisible(false);
            route.setVisible(true);
            ship1.setVisible(false);
            ship2.setVisible(false);
            book.setVisible(false);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            addb.setVisible(false);
            del.setVisible(false);
            addf.setVisible(false);

            }
        });
        addf.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            //  System.out.println("" + text.getText());
            fer.setVisible(false);
            ferr.setVisible(false);
            button.setVisible(true);
            choss.setVisible(false);
            back.setVisible(false);
            chosb.setVisible(false);
            ifer.setVisible(false);
            iferr.setVisible(false);
            iferrr.setVisible(false);
            route.setVisible(true);
            ship1.setVisible(false);
            ship2.setVisible(false);
            book.setVisible(false);
            chost.setVisible(false);
            freig.setVisible(false);
            pass.setVisible(false);
            addb.setVisible(false);
            del.setVisible(false);
            adbf.setVisible(true);
            amys.setVisible(true);
            amys.setText(labelPrefixs + ++numAmy);
            addf.setVisible(false);
            adbf.setText(labelPrefixww + numClicks);
            }
        });

        book.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
                addf.setVisible(true);
            addb.setVisible(true);
            addb.setText(labelPrefix + ++numClicks);
            del.setVisible(true);
        }
        });

            del.addActionListener(new ActionListener() 
        {//This is known as an anonymous function
            public void actionPerformed(ActionEvent e) 
            {
            addf.setVisible(true);
            addb.setText(labelPrefix + --numClicks);
            del.setVisible(true);
            del.setVisible(numClicks > 0);
            addf.setVisible(numClicks > 0);
        }
        });
}
    public static void main(String[] args) 
    {
        new Boat("SwingApplication");






    }
}

我的问题是:

Q1 问题一在标题中。

Q2 当用户添加10艘船的船队时,我需要“添加的船只数量”以重置为0.同时继续添加使用的船只。

Q3 当一个用户创建一个舰队时,舰队可以是5 amy的船只和10坦率的..如何使这个可见的“使用的船”的内容

Q4 如果对问题1的回答是肯定的,那我就走在了正确的轨道上。有没有办法让代码变小?因为即时通讯仍在为它添加东西,它只会变得更大,更混乱。

Q5 我看了几个Stack Overflow论坛,看看如何在Jlabel中进行换行。他们说你不能这样做但你可以添加HTML并制作一个(br)。有没有办法不使用HTML来换行?我的朋友做了这件事,我尝试过处理他的代码而且它对我不起作用。

谢谢大家!感谢任何帮助。

P.S 请评论您对本文的任何体验。

1 个答案:

答案 0 :(得分:1)

对我而言,你是以错误的方式创造它。 尝试以3种方式制作应用程序(您可以像模板一样使用它):  1.主要课堂中的动作听众:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Demo1 implements ActionListener 
{
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("b1");

    }

    protected void createAndShowGUI() {
        JFrame f = new JFrame();
        f.setSize(800,600);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLayout(new FlowLayout());

        JButton b1 = new JButton("B1");
        f.add(b1);
        b1.addActionListener(this);

        f.setVisible(true);
    }

    public static void main(String[] args) 
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run()
            {
                Demo1 app = new Demo1();
                app.createAndShowGUI();
            }
        });
    }
}
  1. 将anon类作为Actionlistener http://pastebin.com/CNzi1ig9

  2. 或者在其他课程中 http://pastebin.com/379dbPiZ