📄 mainframe.java
字号:
jOptionPanel.add(jDSRadioButton,
new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
, GridBagConstraints.NORTHWEST,
GridBagConstraints.HORIZONTAL,
new Insets(4, 4, 4, 4), 0, 0));
jOptionPanel.add(jDeepPanel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
, GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(0, 0, 0, 0), 0, 0));
jDataPanel.add(jOptionPanel, BorderLayout.SOUTH);
jScrollPane1.getVerticalScrollBar().setUnitIncrement(10);
listModel = new ListModel(this);
jList1.setModel(listModel);
jList1.setVisibleRowCount(10);
jList1.setFixedCellWidth(100);
buttonGroup1.add(jBreadthRadioButton);
buttonGroup1.add(jBSRadioButton);
buttonGroup1.add(jDSRadioButton);
buttonGroup1.add(jDepthRadioButton);
jPanel4.setLayout(new BoxLayout(jPanel4, BoxLayout.Y_AXIS));
jPanel4.add(jList1);
jPanel4.add(jScrollPane1);
jScrollPane1.getViewport().setView(jList1); ///特别注意,本语句只能在上面的语句后才能执行
jButtonPanel.setLayout(new FlowLayout());
jButtonPanel.add(jButtonRun);
jButtonPanel.add(jButtonDisplay);
jDataPanel.add(jPanel4, java.awt.BorderLayout.CENTER);
jDataPanel.add(jButtonPanel, java.awt.BorderLayout.NORTH);
}
void this_windowOpened(WindowEvent e) {
jDrawStartPanel.addCodes(new int[][] { {1, 2, 3}, {4, 5, 6}, {7, 8, 0}
});
jDrawTargetPanel.addCodes(new int[][] { {1, 2, 3}, {4, 5, 6}, {7, 8, 0}
});
jDrawDisplayPanel.addCodes(new int[][] { {1, 2, 3}, {4, 5, 6}, {7, 8, 0}
});
}
void this_windowActivated(WindowEvent e) {
if (!isOpened) {
isOpened = true;
this_windowOpened(e);
}
}
void jMenuFileExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
void jMenuAboutItem_actionPerformed(ActionEvent e) {
MainFrame_AboutBox dlg = new MainFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.show();
}
public void jButtonRun_actionPerformed(ActionEvent actionEvent) {
Node start, end;
start = new Node(jDrawStartPanel.getData());
end = new Node(jDrawTargetPanel.getData());
if(end.getParity()!=start.getParity()){
messageBox("无法从起始状态到达目标状态");
return;
}
seeker.setNodes(start, end);
long t_start = System.currentTimeMillis();
seeker.seek();
listModel.addArray(seeker.getOptim());
long t_end = System.currentTimeMillis();
messageBox("耗时" + (t_end - t_start) + "毫秒");
}
public void jButtonDisplay_actionPerformed(ActionEvent actionEvent) {
timer = new Thread(this);
timer.start();
}
public void jList1_valueChanged(ListSelectionEvent listSelectionEvent) {
jDrawDisplayPanel.addCodes( ( (ListModel) jList1.getModel()).getDataAt(
jList1.getSelectedIndex()));
jDrawDisplayPanel.repaint();
}
public void jSpinner1_valueChanged(ChangeEvent changeEvent) {
seeker.setMaxDepth(spinnerNumberModel.getIntValue());
}
public void jRadioButton_actionPerformed(ActionEvent actionEvent) {
JRadioButton rb = (JRadioButton) actionEvent.getSource();
if (rb.equals(jBreadthRadioButton)) {
seeker.setType(1);
}
else if (rb.equals(jBSRadioButton)) {
seeker.setType(2);
}
else if(rb.equals(jDepthRadioButton)){
seeker.setType(3);
}
else{
seeker.setType(4);
}
}
void messageBox(String message) {
MessageDialog dlg = new MessageDialog(this, message, true);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.show();
}
public void run() {
try {
int len = jList1.getModel().getSize();
for (int i = 0; i < len; i++) {
jList1.setSelectedIndex(i);
timer.sleep(500);
}
}
catch (Exception e) {}
}
}
class MainFrame_jRadioButton_actionAdapter
implements ActionListener {
private MainFrame adaptee;
MainFrame_jRadioButton_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jRadioButton_actionPerformed(actionEvent);
}
}
class MainFrame_jList1_listSelectionAdapter
implements ListSelectionListener {
private MainFrame adaptee;
MainFrame_jList1_listSelectionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(ListSelectionEvent listSelectionEvent) {
if (!listSelectionEvent.getValueIsAdjusting()) {
adaptee.jList1_valueChanged(listSelectionEvent);
}
}
}
class MainFrame_jSpinner1_ChangedAdapter
implements ChangeListener {
private MainFrame adaptee;
MainFrame_jSpinner1_ChangedAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void stateChanged(ChangeEvent e) {
adaptee.jSpinner1_valueChanged(e);
}
}
class MainFrame_jButtonRun_actionAdapter
implements ActionListener {
private MainFrame adaptee;
MainFrame_jButtonRun_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jButtonRun_actionPerformed(actionEvent);
}
}
class MainFrame_jButtonDisplay_actionAdapter
implements ActionListener {
private MainFrame adaptee;
MainFrame_jButtonDisplay_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jButtonDisplay_actionPerformed(actionEvent);
}
}
class MainFrame_this_windowAdapter
extends java.awt.event.WindowAdapter {
MainFrame adaptee;
MainFrame_this_windowAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void windowActivated(WindowEvent e) {
adaptee.this_windowActivated(e);
}
public void windowOpened(WindowEvent e) {
adaptee.this_windowOpened(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -