📄 pushbuttoncontrols.java
字号:
} CheckBoxControls.heuristicsOff(); } } private static class ActionHeuristicsRandomize implements ActionListener { public void actionPerformed(ActionEvent event) { if (CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS)) { System.out.println ( "in Traveller.java, button \"Randomize Heuristics\" pushed" ); } CheckBoxControls.heuristicsRandomize(); } } private static ActionListener [] m_btnHeuristicsListeners = { new ActionHeuristicsOn(), new ActionHeuristicsOff(), new ActionHeuristicsRandomize() }; // constants private final static int BTN_STOP = 0; private final static int BTN_RESUME = 1; private final static int BTN_START = 2; private final static int BTN_TESTAGAIN = 3; private final static int BTN_RESET = 4; private final static int BTN_NEWCITIES = 5; private final static String [] BTN_TOOLBAR_LABEL = { "停止", "恢复", "开始", "重新测试", "复位", "创建新城市" }; private final static int BTN_CONFIG_CHANGE = 0; private final static int BTN_CONFIG_SET = 1; private final static int BTN_CONFIG_DEFAULT = 2; private final static String [] BTN_CONFIG_LABEL = { "改变结构", "设置结构", "取消结构设置" }; private final static int BTN_HEURISTICS_ON = 0; private final static int BTN_HEURISTICS_OFF = 1; private final static int BTN_HEURISTICS_RANDOMIZE = 2; private final static String [] BTN_HEURISTICS_LABEL = { "激活所有探索法", "废弃所有探索法", "随机使用探索法" }; private static TravellerFrame m_pushButtonsFrame = null; private static EdgedPanel m_pushButtonsPanel = null; private static Panel m_toolbarPanel = null; private static Panel m_configurationPanel = null; private static Panel m_heuristicsPanel = null; private static Button [] m_btnToolbar = null; private static Button [] m_btnConfig = null; private static Button [] m_btnHeuristics = null; private final static String PUSH_BUTTONS_NAME = "旅行商控制菜单"; public static void setup() { m_pushButtonsFrame = new TravellerFrame(PUSH_BUTTONS_NAME);/* m_toolbarFrame.setSize ( TravellerFrame.PLAYFIELD_FRAME_WIDTH, 60 + ( 2 * TravellerFrame.FRAME_EDGE_THICKNESS ) + TravellerFrame.getTitleBarHeightAllowance() );*/ m_pushButtonsFrame.setVisible(true); m_pushButtonsFrame.invalidate(); // create tool bars via band objects m_pushButtonsPanel = new EdgedPanel(); m_pushButtonsPanel.setBackground( TravellerColors.BAR_COLOR ); m_pushButtonsPanel.setLayout( new BorderLayout() ); m_toolbarPanel = new Panel(); m_toolbarPanel.setLayout( new FlowLayout() ); m_configurationPanel = new Panel(); m_configurationPanel.setLayout( new FlowLayout() ); m_heuristicsPanel = new Panel(); m_heuristicsPanel.setLayout( new FlowLayout() ); m_pushButtonsPanel.add( m_toolbarPanel, BorderLayout.NORTH ); m_pushButtonsPanel.add( m_configurationPanel, BorderLayout.CENTER ); m_pushButtonsPanel.add( m_heuristicsPanel, BorderLayout.SOUTH ); // create and add buttons int nBtn = BTN_TOOLBAR_LABEL.length; m_btnToolbar = new Button [nBtn]; Font tfont = new Font("SansSerif",Font.PLAIN,12); for (int b = 0; b < nBtn; ++b) { m_btnToolbar[b] = new Button(BTN_TOOLBAR_LABEL[b]); m_btnToolbar[b].addActionListener(m_btnToolbarListeners[b]); m_btnToolbar[b].setBackground(TravellerColors.BTN_COLOR); m_btnToolbar[b].setForeground(TravellerColors.BTN_TEXT); m_btnToolbar[b].setFont(tfont); m_toolbarPanel.add(m_btnToolbar[b]); } m_btnConfig = new Button[BTN_CONFIG_LABEL.length]; for ( int b = 0; b < BTN_CONFIG_LABEL.length; b++ ) { m_btnConfig[b] = new Button(BTN_CONFIG_LABEL[b]); m_btnConfig[b].setBackground(TravellerColors.BTN_COLOR); m_btnConfig[b].setForeground(TravellerColors.BTN_TEXT); m_btnConfig[b].setFont(tfont); m_btnConfig[b].addActionListener(m_btnConfigListeners[b]); m_configurationPanel.add(m_btnConfig[b]); } m_btnHeuristics = new Button[BTN_HEURISTICS_LABEL.length]; for ( int b = 0; b < BTN_HEURISTICS_LABEL.length; b++ ) { m_btnHeuristics[b] = new Button(BTN_HEURISTICS_LABEL[b]); m_btnHeuristics[b].setBackground(TravellerColors.BTN_COLOR); m_btnHeuristics[b].setForeground(TravellerColors.BTN_TEXT); m_btnHeuristics[b].setFont(tfont); m_btnHeuristics[b].addActionListener(m_btnHeuristicsListeners[b]); m_heuristicsPanel.add(m_btnHeuristics[b]); } m_pushButtonsFrame.add("Center", m_pushButtonsPanel); m_pushButtonsFrame.pack(); m_pushButtonsFrame.validate(); } public static void setButtonsNewProblem() { m_btnToolbar[BTN_STOP].setEnabled(false); m_btnToolbar[BTN_RESUME].setEnabled(false); m_btnToolbar[BTN_START].setEnabled(true); m_btnToolbar[BTN_TESTAGAIN].setEnabled(false); m_btnToolbar[BTN_RESET].setEnabled(true); m_btnToolbar[BTN_NEWCITIES].setEnabled(true); m_btnConfig[BTN_CONFIG_CHANGE].setEnabled(true); m_btnConfig[BTN_CONFIG_SET].setEnabled(false); m_btnConfig[BTN_CONFIG_DEFAULT].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_ON].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_OFF].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_RANDOMIZE].setEnabled(false); ValuatorControls.disable(); CheckBoxControls.disable(); } protected static void setButtonsStopped() { m_btnToolbar[BTN_STOP].setEnabled(false); m_btnToolbar[BTN_RESUME].setEnabled(true); m_btnToolbar[BTN_START].setEnabled(false); m_btnToolbar[BTN_TESTAGAIN].setEnabled(true); m_btnToolbar[BTN_RESET].setEnabled(true); m_btnToolbar[BTN_NEWCITIES].setEnabled(true); m_btnConfig[BTN_CONFIG_CHANGE].setEnabled(true); m_btnConfig[BTN_CONFIG_SET].setEnabled(false); m_btnConfig[BTN_CONFIG_DEFAULT].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_ON].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_OFF].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_RANDOMIZE].setEnabled(false); ValuatorControls.disable(); if ( TravellerWorld.getTravellerWorld() != null ) { if ( CheckBoxControls.getState(CheckBoxControls.CBC_DEBUG_PRINTOUTS) ) { System.out.println ( "best Chromosome at Stop: " + TravellerWorld.getTravellerWorld().dumpBestChromosome() ); } } CheckBoxControls.disable(); } protected static void setButtonsRunning() { m_btnToolbar[BTN_STOP].setEnabled(true); m_btnToolbar[BTN_RESUME].setEnabled(false); m_btnToolbar[BTN_START].setEnabled(false); m_btnToolbar[BTN_TESTAGAIN].setEnabled(true); m_btnToolbar[BTN_RESET].setEnabled(false); m_btnToolbar[BTN_NEWCITIES].setEnabled(false); m_btnConfig[BTN_CONFIG_CHANGE].setEnabled(false); m_btnConfig[BTN_CONFIG_SET].setEnabled(false); m_btnConfig[BTN_CONFIG_DEFAULT].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_ON].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_OFF].setEnabled(false); m_btnHeuristics[BTN_HEURISTICS_RANDOMIZE].setEnabled(false); ValuatorControls.disable(); CheckBoxControls.disable(); } protected static void setButtonsChanging() { m_btnToolbar[BTN_STOP].setEnabled(false); m_btnToolbar[BTN_RESUME].setEnabled(false); m_btnToolbar[BTN_START].setEnabled(false); m_btnToolbar[BTN_TESTAGAIN].setEnabled(false); m_btnToolbar[BTN_RESET].setEnabled(false); m_btnToolbar[BTN_NEWCITIES].setEnabled(false); m_btnConfig[BTN_CONFIG_CHANGE].setEnabled(false); m_btnConfig[BTN_CONFIG_SET].setEnabled(true); m_btnConfig[BTN_CONFIG_DEFAULT].setEnabled(true); m_btnHeuristics[BTN_HEURISTICS_ON].setEnabled(true); m_btnHeuristics[BTN_HEURISTICS_OFF].setEnabled(true); m_btnHeuristics[BTN_HEURISTICS_RANDOMIZE].setEnabled(true); ValuatorControls.enable(); CheckBoxControls.enable(); } // Save data from configuration panel into member data, // then use it to repaint the configuration panel with loadConfig(). public static void saveConfig() { ValuatorControls.saveSettings(); CheckBoxControls.saveSettings(); loadConfig(); } public static void loadConfig() { ValuatorControls.loadSettings(); CheckBoxControls.loadSettings(); } // Copy default values to member data, then use it to paint // the configuration panel with loadConfig(). public static void loadDefaultConfig() { ValuatorControls.loadDefaultSettings(); CheckBoxControls.loadDefaultSettings(); loadConfig(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -