Created
February 19, 2018 10:42
-
-
Save anonymous/a32a483a053b2174c87b8f54c85310bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javax.swing.*; | |
import java.awt.*; | |
class Ticket extends JPanel { | |
protected String timeOfDeparture, arrivalTime, departurePoin, | |
placeOfArrival, seat, price,fName,lName; | |
public Ticket(String timeOfDeparture, String arrivalTime, String departurePoin, | |
String placeOfArrival, String seat, String price, String fName, String lName) { | |
this.timeOfDeparture = timeOfDeparture; | |
this.arrivalTime = arrivalTime; | |
this.departurePoin = departurePoin; | |
this.placeOfArrival = placeOfArrival; | |
this.seat = seat; | |
this.price = price; | |
this.fName = fName; | |
this.lName = lName; | |
} | |
public Ticket( String fName, String lName){ | |
this.fName = fName; | |
this.lName = lName; | |
} | |
@Override | |
public void paint (Graphics g){ | |
Graphics2D graphics2D = (Graphics2D) g; | |
graphics2D.setColor(Color.BLACK); | |
graphics2D.drawRect(5,5,110,170); | |
} | |
public String getfName() { | |
return fName; | |
} | |
public void setfName(String fName) { | |
this.fName = fName; | |
} | |
public String getlName() { | |
return lName; | |
} | |
public void setlName(String lName) { | |
this.lName = lName; | |
} | |
public String getTimeOfDeparture() { | |
return timeOfDeparture; | |
} | |
public void setTimeOfDeparture(String timeOfDeparture) { | |
this.timeOfDeparture = timeOfDeparture; | |
} | |
public String getArrivalTime() { | |
return arrivalTime; | |
} | |
public void setArrivalTime(String arrivalTime) { | |
this.arrivalTime = arrivalTime; | |
} | |
public String getDeparturePoin() { | |
return departurePoin; | |
} | |
public void setDeparturePoin(String departurePoin) { | |
this.departurePoin = departurePoin; | |
} | |
public String getPlaceOfArrival() { | |
return placeOfArrival; | |
} | |
public void setPlaceOfArrival(String placeOfArrival) { | |
this.placeOfArrival = placeOfArrival; | |
} | |
public String getSeat() { | |
return seat; | |
} | |
public void setSeat(String seat) { | |
this.seat = seat; | |
} | |
public String getPrice() { | |
return price; | |
} | |
public void setPrice(String price) { | |
this.price = price; | |
} | |
@Override | |
public String toString() { | |
return "Отправление с: " + timeOfDeparture +"\nПрибытие в: "+ arrivalTime + | |
"\nВремя отправления: "+ departurePoin +"\nВремя прибытия: "+ placeOfArrival + | |
"\nМесто: "+ seat +"\nЦена: "+ price + "\nИмя: " + fName + "\nФамилия: "+ lName; | |
} | |
} | |
/* | |
Междугородний билет может иметь такие же поля | |
как и класс Ticket(наследование),а свои дополнительные | |
к примеру услуги: | |
Чай, постель, интернет | |
Tea, bed, Internet | |
*/ | |
import java.awt.*; | |
public class IntercityTicket extends Ticket { | |
protected boolean tea, bed, internet; | |
public IntercityTicket(String timeOfDeparture, String arrivalTime, | |
String departurePoin, String placeOfArrival, | |
String seat, String price, String fName, String lName, | |
boolean tea, boolean bed, boolean internet) { | |
super(timeOfDeparture, arrivalTime, departurePoin, placeOfArrival, seat, price, fName, lName); | |
this.tea = tea; | |
this.bed = bed; | |
this.internet = internet; | |
} | |
public IntercityTicket(String fName, String lName, boolean tea, boolean bed, boolean internet) { | |
super(fName, lName); | |
this.tea = tea; | |
this.bed = bed; | |
this.internet = internet; | |
} | |
@Override | |
public void paint (Graphics g){ | |
Graphics2D graphics2D = (Graphics2D) g; | |
graphics2D.setColor(Color.BLACK); | |
graphics2D.drawRect(115,5,110,170); | |
} | |
public boolean getTea() { | |
return tea; | |
} | |
public void setTea(boolean tea) { | |
this.tea = tea; | |
} | |
public boolean getBed() { | |
return bed; | |
} | |
public void setBed(boolean bed) { | |
this.bed = bed; | |
} | |
public boolean getInternet() { | |
return internet; | |
} | |
public void setInternet(boolean internet) { | |
this.internet = internet; | |
} | |
@Override | |
public String toString() { | |
return "Отправление с: " + timeOfDeparture +"\nПрибытие в: "+ arrivalTime + | |
"\nВремя отправления: "+ departurePoin +"\nВремя прибытия: "+ placeOfArrival + | |
"\nМесто: "+ seat +"\nЦена: "+ price + "\nИмя: " + fName + "\nФамилия: "+ lName + | |
"\nДополнительные услуги:\n" +"Чай: " + tea + "\n" + "Постель: " + bed + "\n" + "Интернет: " + internet; | |
} | |
} | |
import javax.swing.*; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.ActionListener; | |
public class TestBox implements ActionListener{ | |
//Поля классов | |
private JFrame frame; | |
private JPanel panel; | |
private JButton b1,b2; | |
private JComboBox cb1,cb2; | |
private JTextField tf1,tf2,tf3,tf4; | |
private JRadioButton rb1,rb2; | |
private JCheckBox tea, bed, internet; | |
private JTextArea ta; | |
private JLabel l1, l2,l3,l4,l5,l6,l7; | |
private Ticket ticket; | |
private IntercityTicket iTicket; | |
public static void main(String[] args) { | |
TestBox tb = new TestBox(); | |
tb.interfaceGUI(); | |
} | |
//Создание графического интерфейса программы | |
public void interfaceGUI(){ | |
frame = new JFrame("Create a bus ticket"); | |
frame.setSize(500,230); | |
frame.setVisible(true); | |
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
panel = new JPanel(); | |
panel.setLayout(null); | |
frame.add(panel); | |
ta = new JTextArea(); | |
ta.setBounds(250,10,240,185); | |
panel.add(ta); | |
b1 = new JButton("Ticket"); | |
b1.setActionCommand("test"); | |
b1.setBounds(250,200,80,20); | |
b1.addActionListener(this); | |
panel.add(b1); | |
b2 = new JButton("IntercityTicket"); | |
b2.setActionCommand("test1"); | |
b2.setBounds(340,200,150,20); | |
b2.addActionListener(this); | |
b2.setEnabled(false); | |
panel.add(b2); | |
l1 = new JLabel("Departure"); | |
l1.setBounds(10,70,100,20); | |
panel.add(l1); | |
l2 = new JLabel("Arrival"); | |
l2.setBounds(120,70,100,20); | |
panel.add(l2); | |
l3 = new JLabel("Select additional services"); | |
l3.setBounds(10,180,200,20); | |
panel.add(l3); | |
l4 = new JLabel("Seat"); | |
l4.setBounds(10,130,100,20); | |
panel.add(l4); | |
l5 = new JLabel("Price"); | |
l5.setBounds(120,130,100,20); | |
panel.add(l5); | |
l6 = new JLabel("Ferst name"); | |
l6.setBounds(10,90,100,20); | |
panel.add(l6); | |
l7 = new JLabel("Last name"); | |
l7.setBounds(120,90,100,20); | |
panel.add(l7); | |
tf1 = new JTextField(); | |
tf1.setBounds(10,150,100,20); | |
panel.add(tf1); | |
tf2 = new JTextField(); | |
tf2.setBounds(120,150,100,20); | |
panel.add(tf2); | |
tf3 = new JTextField(); | |
tf3.setBounds(10,110,100,20); | |
panel.add(tf3); | |
tf4 = new JTextField(); | |
tf4.setBounds(120,110,100,20); | |
panel.add(tf4); | |
rb1 = new JRadioButton("Ticket"); | |
rb1.setBounds(10,10,100,20); | |
rb1.addActionListener(this); | |
rb1.setActionCommand("ticket"); | |
panel.add(rb1); | |
rb2 = new JRadioButton("IntercityTicket"); | |
rb2.setActionCommand("intersity"); | |
rb2.addActionListener(this); | |
rb2.setBounds(120,10,130,20); | |
panel.add(rb2); | |
ButtonGroup group = new ButtonGroup(); | |
rb1.setSelected(true); | |
group.add(rb1); | |
group.add(rb2); | |
tea = new JCheckBox("Tea"); | |
bed = new JCheckBox("Bed"); | |
internet = new JCheckBox("Internet"); | |
tea.setBounds(10,200,55,20); | |
bed.setBounds(70,200,70,20); | |
internet.setBounds(150,200,100,20); | |
tea.setEnabled(false); | |
bed.setEnabled(false); | |
internet.setEnabled(false); | |
panel.add(tea); | |
panel.add(bed); | |
panel.add(internet); | |
String[] out = { | |
"Krakov", | |
"Kyiv", | |
"Cherkassy", | |
"Lviv", | |
"Smila", | |
"BilaCerkva", | |
}; | |
cb1 = new JComboBox(out); | |
cb1.setActionCommand("box1"); | |
cb1.addActionListener(this); | |
cb1.setBounds(10,40,100,20); | |
panel.add(cb1); | |
String[] in = { | |
"Krakov", | |
"Kyiv", | |
"Cherkassy", | |
"Lviv", | |
"Smila", | |
"BilaCerkva", | |
}; | |
cb2 = new JComboBox(in); | |
cb2.setActionCommand("box2"); | |
cb2.addActionListener(this); | |
cb2.setBounds(120,40,100,20); | |
panel.add(cb2); | |
} | |
//Обработчик программы | |
@Override | |
public void actionPerformed(ActionEvent e) { | |
switch (e.getActionCommand()){ | |
//Создание билета и вывод в ТА | |
case "test1": | |
iTicket = new IntercityTicket(cb1.getSelectedItem().toString(),cb2.getSelectedItem().toString(), | |
l1.getText(),l2.getText(), tf1.getText(),tf2.getText(),tf3.getText(), tf4.getText(), | |
tea.isSelected(), bed.isSelected(), internet.isSelected()); | |
iTicket.paint(panel.getGraphics()); | |
ta.setText(iTicket.toString()); | |
break; | |
case "test": | |
ticket = new Ticket(cb1.getSelectedItem().toString(),cb2.getSelectedItem().toString(), | |
l1.getText(),l2.getText(), tf1.getText(),tf2.getText(),tf3.getText(), tf4.getText()); | |
ticket.paint(panel.getGraphics()); | |
ta.setText(ticket.toString()); | |
break; | |
//Включение дополнительных услуг класса IntercityTicket | |
case "intersity": | |
rb2.setSelected(true); | |
b1.setEnabled(false); | |
b2.setEnabled(true); | |
tea.setEnabled(true); | |
bed.setEnabled(true); | |
internet.setEnabled(true); | |
break; | |
//Отключение дополнительных услуг класса IntercityTicket | |
case "ticket": | |
rb1.setSelected(true); | |
b1.setEnabled(true); | |
b2.setEnabled(false); | |
tea.setEnabled(false); | |
bed.setEnabled(false); | |
internet.setEnabled(false); | |
tea.setSelected(false); | |
bed.setSelected(false); | |
internet.setSelected(false); | |
break; | |
//Обработка комбобоксов с автоматическим выборо времени в текстовом формате | |
case "box1": | |
if (cb1.getSelectedItem().equals("Krakov")){ | |
l1.setText("10:00"); | |
}else if (cb1.getSelectedItem().equals("Kyiv")){ | |
l1.setText("11:50"); | |
}else if (cb1.getSelectedItem().equals("Cherkassy")){ | |
l1.setText("9:50"); | |
}else if (cb1.getSelectedItem().equals("Lviv")){ | |
l1.setText("01:50"); | |
}else if (cb1.getSelectedItem().equals("Smila")){ | |
l1.setText("14:50"); | |
}else if (cb1.getSelectedItem().equals("BilaCerkva")){ | |
l1.setText("17:50"); | |
} | |
break; | |
case "box2": | |
if (cb2.getSelectedItem().equals("Krakov")){ | |
l2.setText("00:05"); | |
}else if (cb2.getSelectedItem().equals("Kyiv")){ | |
l2.setText("21:20"); | |
}else if (cb2.getSelectedItem().equals("Cherkassy")){ | |
l2.setText("19:15"); | |
}else if (cb2.getSelectedItem().equals("Lviv")){ | |
l2.setText("15:35"); | |
}else if (cb2.getSelectedItem().equals("Smila")){ | |
l2.setText("04:55"); | |
}else if (cb2.getSelectedItem().equals("BilaCerkva")){ | |
l2.setText("07:10"); | |
} | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment