hi,
ich hab ein kleines Problem, und zwar weiss ich nicht wie ich einen Kinosaal mit Sitzplätzen darin (3 Sääle mit 80, 120 und 160 Sitzen) mit Swing repräsentieren soll.
Also ich wollte es so ähnlich wie beim Cinestar haben wenn man bei der Online Reservierung bzw Online Ticketkauf sich das Fenster öffnet mit dem Kinosaal und den SItzplätzen darin wo man dann auf einen Platz klicken kann und den zur Reservierung auswählen kann, es muss nicht so schön graphisch sein, einfache Kästchen reichen schon, nur ich weiss nicht wie ich da am besten herangehen soll…
ich hab mir verschiedene Möglichkeiten überlegt,
- Ein GridBagLayout jedes Kästchen ein Sitzplatz, in jedem Kasten ein JPanel ,allerdings weiss ich nicht wie ich das automatisiert machen kann , (ich hab keine Lust 120 JPanel anzulegen in jedes Kästchen eins…) ausserdem weiss ich nicht wie ich die Größe jedes Kästchens setzen kann und ob man die Kästchen bzw späteren SItze noch indexieren kann, das wäre nützlich (um die Plätze zu nummerieren)
- Eine Tabelle erstelle mit n Reihen und m Spalten, dann könnte ich wohl einzelnen Tabellenkästchen auswählen und die wären vllt schon vorher indexiert…
- vllt ein „Gitter“ mit mehrfach auswählbaren Radio Buttons oder Checkboxen, aber wird wohl auch nicht einfach zu indexieren sein…
hier mein Code bisher … ich habe das Fenster quasi in 3 Ebenen unterteilt: auf der linken Leiste die liste mit Filmen zur Auswahl (und den zugehörigen Sälen später) in der Oberen Hälfte noch ein paar Infos zum Film, Datum/Spielzeit und Saal, und darunter soll der Kinosaal abgebildet werden mit den Sitzplätzen dazu (den ich im moment nicht hinbekomme )
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JList;
import com.jgoodies.forms.layout.RowSpec;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Component;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JSeparator;
public class TicketOverview extends JFrame {
private JPanel contentPane;
private JMenuBar menuBar;
private JMenu mnStart;
private JMenu mnHilfe;
private JSplitPane splitPane;
private JList list;
private JList list_1;
private JButton btnNewButton;
private FlowLayout flowLayout;
private BoxLayout boxLayout;
private JButton btnNewButton_1;
private JButton btnNewButton_2;
private JButton btnNewButton_3;
private JButton btnNewButton_4;
private JButton btnNewButton_5;
private JButton btnNewButton_6;
private JButton btnNewButton_7;
private JButton btnNewButton_8;
private JButton btnNewButton_9;
private JTextArea textArea;
private JButton btnNewButton_10;
private JLabel lblFilmtitel;
private JTextField textField;
private JLabel lblDatumuhrzeit;
private JTextField textField_1;
private JLabel lblSaal;
private JTextField textField_2;
private JSeparator separator;
private JLabel lblLeinwand;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TicketOverview frame = new TicketOverview();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TicketOverview() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 884, 481);
menuBar = new JMenuBar();
setJMenuBar(menuBar);
mnStart = new JMenu("Start");
menuBar.add(mnStart);
mnHilfe = new JMenu("Hilfe");
menuBar.add(mnHilfe);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
JPanel panelLeft = new JPanel();
JPanel panelRight = new JPanel();
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
setContentPane(splitPane);
splitPane.setLeftComponent(panelLeft);
btnNewButton = new JButton("Film 1");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
panelLeft.add(btnNewButton);
splitPane.setRightComponent(panelRight);
panelRight.setLayout(null);
lblFilmtitel = new JLabel("Filmtitel");
lblFilmtitel.setBounds(21, 25, 46, 14);
panelRight.add(lblFilmtitel);
textField = new JTextField();
textField.setBounds(76, 22, 86, 20);
panelRight.add(textField);
textField.setColumns(10);
lblDatumuhrzeit = new JLabel("Datum,Uhrzeit");
lblDatumuhrzeit.setBounds(197, 25, 111, 14);
panelRight.add(lblDatumuhrzeit);
textField_1 = new JTextField();
textField_1.setBounds(318, 22, 86, 20);
panelRight.add(textField_1);
textField_1.setColumns(10);
lblSaal = new JLabel("Saal");
lblSaal.setBounds(440, 25, 46, 14);
panelRight.add(lblSaal);
textField_2 = new JTextField();
textField_2.setBounds(496, 22, 86, 20);
panelRight.add(textField_2);
textField_2.setColumns(10);
separator = new JSeparator();
separator.setBounds(0, 93, 587, 2);
panelRight.add(separator);
lblLeinwand = new JLabel("Leinwand");
lblLeinwand.setBounds(243, 68, 70, 14);
panelRight.add(lblLeinwand);
panelLeft.setLayout(new BoxLayout(panelLeft,BoxLayout.Y_AXIS));
btnNewButton_1 = new JButton("Film2");
panelLeft.add(btnNewButton_1);
btnNewButton_2 = new JButton("Film 3");
panelLeft.add(btnNewButton_2);
btnNewButton_3 = new JButton("Film 4");
panelLeft.add(btnNewButton_3);
btnNewButton_4 = new JButton("Film 5");
panelLeft.add(btnNewButton_4);
btnNewButton_5 = new JButton("Film 6");
panelLeft.add(btnNewButton_5);
btnNewButton_6 = new JButton("Film 7");
panelLeft.add(btnNewButton_6);
btnNewButton_7 = new JButton("Film 8");
panelLeft.add(btnNewButton_7);
btnNewButton_8 = new JButton("Film 9");
btnNewButton_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnNewButton_8.setAlignmentY(Component.TOP_ALIGNMENT);
panelLeft.add(btnNewButton_8);
btnNewButton_9 = new JButton("kommende Filme");
panelLeft.add(btnNewButton_9);
textArea = new JTextArea();
textArea.setSize(10,10);
panelLeft.add(textArea);
btnNewButton_10 = new JButton("Reservierung suchen");
panelLeft.add(btnNewButton_10);
}
}