嘿,伙计们,我得到了这个项目,我对此有一些问题。
这是任务:
您被要求创建一个基于GUI的应用程序,该应用程序将允许用户管理船队。该应用程序适用于代表不同客户管理船队的船队管理公司。
船队由多艘船只组成。最初没有船队或船只,但该应用程序将允许用户添加船队。然后,他们将能够将船只添加到船队中。船有两种类型:客船和货运船。每个船队都有一个船队识别号、拥有船队的公司名称,例如爱尔兰摩天轮,以及零艘或更多船只。每艘船都会有一个名字,例如尤利西斯,以及工作人员的数量。此外,每艘客船都有一个载客量(不能搭载乘客),以及是否可以搭载汽车。每艘货船都有一个集装箱容量。
你应该创建一个Boat超级类,它有两个子类PassengerBoat和FreightBoat。应该有一个完整的FleetManagementCompany类,可以有一个名称,例如FLeet Mgmt有限公司,最多包含5个FLeet(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艘frank船。。如何在"使用过的船只"的背景下使其可见
第4季度如果问题1的答案是肯定的,我就走对了。有没有办法把代码缩小一点?因为我还在添加一些东西,它只会变得越来越大,越来越令人困惑。
Q5我看了一些堆栈溢出论坛,看看如何在Jlabel中换行。他们说你不能这么做,但你可以添加HTML并制作一个(br)。有没有一种方法可以不使用HTML来换行?我的朋友做到了,我试着处理他的代码,但对我不起作用。
谢谢大家!感谢您的帮助
这可能意味着你得了癌症,但我可能错了。尽快去看医生。好运Nasus