📄 controlpanel.java
字号:
package dijkstra;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import static dijkstra.Constants.DIJKSTRA_ALGORITHM;
import static dijkstra.Constants.BRUTEFORCE_ALGORITHM;
public class ControlPanel extends JPanel implements ActionListener {
DijkstraApplet parent;
private JButton stepBtn;
public ControlPanel(DijkstraApplet myparent) {
parent = myparent;
String dijkstra = "Dijkstra";
JRadioButton dijkstraButton = new JRadioButton(dijkstra);
dijkstraButton.setActionCommand(dijkstra);
dijkstraButton.setSelected(true);
dijkstraButton.addActionListener(this);
String bruteForce = "Brute Force";
JRadioButton bruteForceButton = new JRadioButton(bruteForce);
bruteForceButton.setActionCommand(bruteForce);
bruteForceButton.addActionListener(this);
// Group the radio buttons.
ButtonGroup group = new ButtonGroup();
group.add(dijkstraButton);
group.add(bruteForceButton);
JButton b1 = new JButton("run");
b1.addActionListener(this);
JButton b2 = new JButton("clear");
b2.addActionListener(this);
stepBtn = new JButton("step");
stepBtn.addActionListener(this);
JButton b4 = new JButton("reset");
b4.addActionListener(this);
JButton b5 = new JButton("example");
b5.addActionListener(this);
JButton b6 = new JButton("exit");
b6.addActionListener(this);
add(dijkstraButton);
add(bruteForceButton);
add(b1);
add(b2);
add(stepBtn);
add(b4);
add(b5);
add(b6);
}
/**
* {@inheritDoc}
*/
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand();
if (action.equals("step")) {
stepBtn.setText("next step");
parent.getGraphCanvas().stepAlgorithm();
} else if (action.equals("next step")) {
parent.getGraphCanvas().nextstep();
} else if (action.equals("reset")) {
parent.getGraphCanvas().reset();
stepBtn.setEnabled(true);
stepBtn.setText("step");
} else if (action.equals("clear")) {
parent.getGraphCanvas().clear();
stepBtn.setEnabled(true);
stepBtn.setText("step");
} else if (action.equals("Dijkstra")) {
parent.getGraphCanvas().setAlgprithm(DIJKSTRA_ALGORITHM);
parent.getGraphCanvas().reset();
stepBtn.setText("step");
} else if (action.equals("Brute Force")) {
parent.getGraphCanvas().setAlgprithm(BRUTEFORCE_ALGORITHM);
parent.getGraphCanvas().reset();
stepBtn.setText("step");
} else if (action.equals("run")) {
parent.getGraphCanvas().runAlgorithm();
} else if (action.equals("example")) {
parent.getGraphCanvas().drawExample();
} else if (action.equals("exit")) {
System.exit(0);
}
}
public JButton getStepBtn() {
return stepBtn;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -