private void saveOptions() { try { ScenarioInformation.getInstance() .setGameTickTime(Double.parseDouble(mTextFieldGameTickTime.getText())); ScenarioInformation.getInstance() .setYFactor(Double.parseDouble(mTextFieldFieldHeight.getText())); ScenarioInformation.getInstance() .setMaxValue(Double.parseDouble(mTextFieldFieldWidth.getText())); ScenarioInformation.getInstance() .setSimulationBotSpeed(Double.parseDouble(mTextFieldBotMaxMovement.getText())); ScenarioInformation.getInstance() .setChanceToNoIdentification( Double.parseDouble(mTextFieldChanceForNoRecognition.getText())); ScenarioInformation.getInstance() .setRightWheelError(Double.parseDouble(mTextFieldRightWheelError.getText())); ScenarioInformation.getInstance() .setLeftWheelError(Double.parseDouble(mTextFieldLeftWheelError.getText())); Core.getInstance().setSimulation(chckbxSimulation.isSelected()); Core.getInstance().setAutomaticGame(chckbxAutomaticGame.isSelected()); } catch (NullPointerException | NumberFormatException vException) { ScenarioCore.getLogger().error("Could not parse options {} ", vException); ScenarioCore.getLogger().catching(vException); } }
/** Create the frame. */ public ScenarioOptionsGUI() { ScenarioInformation info = ScenarioInformation.getInstance(); setTitle(info.getmScenarioName() + " Options"); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setBounds(100, 100, 518, 368); JPanel contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); contentPane.add(tabbedPane); JPanel panelGeneral = new JPanel(); panelGeneral.setAlignmentY(Component.TOP_ALIGNMENT); tabbedPane.addTab("General", null, panelGeneral, null); GridBagLayout gbl_panelGeneral = new GridBagLayout(); gbl_panelGeneral.columnWidths = new int[] {0, 46, 0, 0}; gbl_panelGeneral.rowHeights = new int[] {20, 20, 20, 20, 0}; gbl_panelGeneral.columnWeights = new double[] {0.0, 0.0, 1.0, Double.MIN_VALUE}; gbl_panelGeneral.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE}; panelGeneral.setLayout(gbl_panelGeneral); JLabel lblNewLabel = new JLabel("Time per GameTick in s:"); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.fill = GridBagConstraints.HORIZONTAL; gbc_lblNewLabel.anchor = GridBagConstraints.EAST; gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel.gridx = 0; gbc_lblNewLabel.gridy = 0; panelGeneral.add(lblNewLabel, gbc_lblNewLabel); lblNewLabel.setHorizontalAlignment(SwingConstants.RIGHT); mTextFieldGameTickTime = new JTextField(); GridBagConstraints gbc_mTextFieldGameTickTime = new GridBagConstraints(); gbc_mTextFieldGameTickTime.fill = GridBagConstraints.HORIZONTAL; gbc_mTextFieldGameTickTime.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldGameTickTime.gridx = 1; gbc_mTextFieldGameTickTime.gridy = 0; panelGeneral.add(mTextFieldGameTickTime, gbc_mTextFieldGameTickTime); mTextFieldGameTickTime.setColumns(10); mTextFieldGameTickTime.setText( Double.toString(ScenarioInformation.getInstance().getGameTickTime())); JLabel lblNewLabel_1 = new JLabel("Max. Ball Movement per GameTick in % of PlayField:"); lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT); lblNewLabel_1.setEnabled(false); GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints(); gbc_lblNewLabel_1.fill = GridBagConstraints.HORIZONTAL; gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_1.gridx = 0; gbc_lblNewLabel_1.gridy = 1; panelGeneral.add(lblNewLabel_1, gbc_lblNewLabel_1); mTextFieldBallMovementMax = new JTextField(); mTextFieldBallMovementMax.setEnabled(false); GridBagConstraints gbc_mTextFieldBallMovementMax = new GridBagConstraints(); gbc_mTextFieldBallMovementMax.fill = GridBagConstraints.HORIZONTAL; gbc_mTextFieldBallMovementMax.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldBallMovementMax.gridx = 1; gbc_mTextFieldBallMovementMax.gridy = 1; panelGeneral.add(mTextFieldBallMovementMax, gbc_mTextFieldBallMovementMax); mTextFieldBallMovementMax.setColumns(10); JLabel lblMaxAbsoluteHeight = new JLabel("Height of PlayField in % of Width:"); lblMaxAbsoluteHeight.setHorizontalAlignment(SwingConstants.RIGHT); GridBagConstraints gbc_lblMaxAbsoluteHeight = new GridBagConstraints(); gbc_lblMaxAbsoluteHeight.fill = GridBagConstraints.HORIZONTAL; gbc_lblMaxAbsoluteHeight.anchor = GridBagConstraints.EAST; gbc_lblMaxAbsoluteHeight.insets = new Insets(0, 0, 5, 5); gbc_lblMaxAbsoluteHeight.gridx = 0; gbc_lblMaxAbsoluteHeight.gridy = 2; panelGeneral.add(lblMaxAbsoluteHeight, gbc_lblMaxAbsoluteHeight); mTextFieldFieldHeight = new JTextField(); GridBagConstraints gbc_mTextFieldFieldHeight = new GridBagConstraints(); gbc_mTextFieldFieldHeight.fill = GridBagConstraints.HORIZONTAL; gbc_mTextFieldFieldHeight.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldFieldHeight.gridx = 1; gbc_mTextFieldFieldHeight.gridy = 2; panelGeneral.add(mTextFieldFieldHeight, gbc_mTextFieldFieldHeight); mTextFieldFieldHeight.setColumns(10); mTextFieldFieldHeight.setText(Double.toString(ScenarioInformation.getInstance().getYFactor())); JLabel lblMaxAbsoluteWidht = new JLabel("Max. absolute Width of PlayField in Points:"); lblMaxAbsoluteWidht.setHorizontalAlignment(SwingConstants.RIGHT); GridBagConstraints gbc_lblMaxAbsoluteWidht = new GridBagConstraints(); gbc_lblMaxAbsoluteWidht.fill = GridBagConstraints.HORIZONTAL; gbc_lblMaxAbsoluteWidht.anchor = GridBagConstraints.EAST; gbc_lblMaxAbsoluteWidht.insets = new Insets(0, 0, 0, 5); gbc_lblMaxAbsoluteWidht.gridx = 0; gbc_lblMaxAbsoluteWidht.gridy = 3; panelGeneral.add(lblMaxAbsoluteWidht, gbc_lblMaxAbsoluteWidht); mTextFieldFieldWidth = new JTextField(); GridBagConstraints gbc_mTextFieldFieldWidth = new GridBagConstraints(); gbc_mTextFieldFieldWidth.insets = new Insets(0, 0, 0, 5); gbc_mTextFieldFieldWidth.fill = GridBagConstraints.HORIZONTAL; gbc_mTextFieldFieldWidth.gridx = 1; gbc_mTextFieldFieldWidth.gridy = 3; panelGeneral.add(mTextFieldFieldWidth, gbc_mTextFieldFieldWidth); mTextFieldFieldWidth.setColumns(10); mTextFieldFieldWidth.setText(Double.toString(ScenarioInformation.getInstance().getMaxValue())); JPanel panelSimulation = new JPanel(); tabbedPane.addTab("Simulation", null, panelSimulation, null); GridBagLayout gbl_panelSimulation = new GridBagLayout(); gbl_panelSimulation.columnWidths = new int[] {0, 0, 0, 0}; gbl_panelSimulation.rowHeights = new int[] {23, 0, 0, 0, 0, 0}; gbl_panelSimulation.columnWeights = new double[] {1.0, 1.0, 1.0, Double.MIN_VALUE}; gbl_panelSimulation.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE}; panelSimulation.setLayout(gbl_panelSimulation); chckbxSimulation = new JCheckBox("Simulation"); chckbxSimulation.setSelected(Core.getInstance().isSimulation()); GridBagConstraints gbc_chckbxSimulation = new GridBagConstraints(); gbc_chckbxSimulation.gridwidth = 2; gbc_chckbxSimulation.anchor = GridBagConstraints.NORTHWEST; gbc_chckbxSimulation.insets = new Insets(0, 0, 5, 5); gbc_chckbxSimulation.gridx = 0; gbc_chckbxSimulation.gridy = 0; panelSimulation.add(chckbxSimulation, gbc_chckbxSimulation); JLabel lblMaxBotMovement = new JLabel("Max. Bot Movement per Tick in % of PlayField:"); GridBagConstraints gbc_lblMaxBotMovement = new GridBagConstraints(); gbc_lblMaxBotMovement.fill = GridBagConstraints.HORIZONTAL; gbc_lblMaxBotMovement.insets = new Insets(0, 0, 5, 5); gbc_lblMaxBotMovement.gridx = 0; gbc_lblMaxBotMovement.gridy = 1; panelSimulation.add(lblMaxBotMovement, gbc_lblMaxBotMovement); lblMaxBotMovement.setHorizontalAlignment(SwingConstants.RIGHT); mTextFieldBotMaxMovement = new JTextField(); GridBagConstraints gbc_mTextFieldBotMaxMovement = new GridBagConstraints(); gbc_mTextFieldBotMaxMovement.anchor = GridBagConstraints.WEST; gbc_mTextFieldBotMaxMovement.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldBotMaxMovement.gridx = 1; gbc_mTextFieldBotMaxMovement.gridy = 1; panelSimulation.add(mTextFieldBotMaxMovement, gbc_mTextFieldBotMaxMovement); mTextFieldBotMaxMovement.setText( Double.toString(ScenarioInformation.getInstance().getSimulationBotSpeed())); mTextFieldBotMaxMovement.setColumns(10); JLabel lblNewLabel_2 = new JLabel("Chance to \"lose\" Bot:"); GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints(); gbc_lblNewLabel_2.anchor = GridBagConstraints.EAST; gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_2.gridx = 0; gbc_lblNewLabel_2.gridy = 2; panelSimulation.add(lblNewLabel_2, gbc_lblNewLabel_2); mTextFieldChanceForNoRecognition = new JTextField(); GridBagConstraints gbc_mTextFieldChanceForNoRecognition = new GridBagConstraints(); gbc_mTextFieldChanceForNoRecognition.anchor = GridBagConstraints.WEST; gbc_mTextFieldChanceForNoRecognition.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldChanceForNoRecognition.gridx = 1; gbc_mTextFieldChanceForNoRecognition.gridy = 2; panelSimulation.add(mTextFieldChanceForNoRecognition, gbc_mTextFieldChanceForNoRecognition); mTextFieldChanceForNoRecognition.setText( Double.toString(ScenarioInformation.getInstance().getChanceToNoIdentification())); mTextFieldChanceForNoRecognition.setColumns(10); JLabel lblRightWheelError = new JLabel("Right wheel error:"); GridBagConstraints gbc_lblRightWheelError = new GridBagConstraints(); gbc_lblRightWheelError.insets = new Insets(0, 0, 5, 5); gbc_lblRightWheelError.anchor = GridBagConstraints.EAST; gbc_lblRightWheelError.gridx = 0; gbc_lblRightWheelError.gridy = 3; panelSimulation.add(lblRightWheelError, gbc_lblRightWheelError); mTextFieldRightWheelError = new JTextField(); GridBagConstraints gbc_mTextFieldRightWheelError = new GridBagConstraints(); gbc_mTextFieldRightWheelError.anchor = GridBagConstraints.WEST; gbc_mTextFieldRightWheelError.insets = new Insets(0, 0, 5, 5); gbc_mTextFieldRightWheelError.gridx = 1; gbc_mTextFieldRightWheelError.gridy = 3; panelSimulation.add(mTextFieldRightWheelError, gbc_mTextFieldRightWheelError); mTextFieldRightWheelError.setText( Double.toString(ScenarioInformation.getInstance().getRightWheelError())); mTextFieldRightWheelError.setColumns(10); JLabel lblLeftWheelError = new JLabel("Left wheel error:"); GridBagConstraints gbc_lblLeftWheelError = new GridBagConstraints(); gbc_lblLeftWheelError.anchor = GridBagConstraints.EAST; gbc_lblLeftWheelError.insets = new Insets(0, 0, 0, 5); gbc_lblLeftWheelError.gridx = 0; gbc_lblLeftWheelError.gridy = 4; panelSimulation.add(lblLeftWheelError, gbc_lblLeftWheelError); mTextFieldLeftWheelError = new JTextField(); GridBagConstraints gbc_mTextFieldLeftWheelError = new GridBagConstraints(); gbc_mTextFieldLeftWheelError.anchor = GridBagConstraints.WEST; gbc_mTextFieldLeftWheelError.insets = new Insets(0, 0, 0, 5); gbc_mTextFieldLeftWheelError.gridx = 1; gbc_mTextFieldLeftWheelError.gridy = 4; panelSimulation.add(mTextFieldLeftWheelError, gbc_mTextFieldLeftWheelError); mTextFieldLeftWheelError.setText( Double.toString(ScenarioInformation.getInstance().getLeftWheelError())); mTextFieldLeftWheelError.setColumns(10); JPanel panelPlayModes = new JPanel(); tabbedPane.addTab("PlayModes", null, panelPlayModes, null); GridBagLayout gbl_panelPlayModes = new GridBagLayout(); gbl_panelPlayModes.columnWidths = new int[] {413, 0, 0}; gbl_panelPlayModes.rowHeights = new int[] {23, 0}; gbl_panelPlayModes.columnWeights = new double[] {0.0, 1.0, Double.MIN_VALUE}; gbl_panelPlayModes.rowWeights = new double[] {0.0, Double.MIN_VALUE}; panelPlayModes.setLayout(gbl_panelPlayModes); chckbxAutomaticGame = new JCheckBox("Automatic Game"); chckbxAutomaticGame.setSelected(Core.getInstance().isAutomaticGame()); GridBagConstraints gbc_chckbxAutomaticGame = new GridBagConstraints(); gbc_chckbxAutomaticGame.insets = new Insets(0, 0, 0, 5); gbc_chckbxAutomaticGame.anchor = GridBagConstraints.NORTH; gbc_chckbxAutomaticGame.fill = GridBagConstraints.HORIZONTAL; gbc_chckbxAutomaticGame.gridx = 0; gbc_chckbxAutomaticGame.gridy = 0; panelPlayModes.add(chckbxAutomaticGame, gbc_chckbxAutomaticGame); JPanel panel_2 = new JPanel(); FlowLayout flowLayout = (FlowLayout) panel_2.getLayout(); flowLayout.setAlignment(FlowLayout.RIGHT); contentPane.add(panel_2, BorderLayout.SOUTH); JButton vBtnOk = new JButton("Ok"); vBtnOk.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveOptions(); dispose(); } }); panel_2.add(vBtnOk); JButton bBtnApply = new JButton("Apply"); bBtnApply.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { saveOptions(); } }); panel_2.add(bBtnApply); JButton vBtnCancel = new JButton("Cancel"); vBtnCancel.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); panel_2.add(vBtnCancel); }