package ui;
import io.*;
import sbt.SBT;
import core.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.Map;
import java.util.Vector;
import javax.swing.*;
import javax.swing.filechooser.*;
import javax.swing.border.LineBorder;
import javax.swing.event.*;
public class ParaClassifier extends JFrame{
private JTextArea txtMsg;
private String curDir="c:\\";
ParaPanel paraPanel=new ParaPanel();
final JScrollPane scrollPaneParal;//定位时需要获得其视口大小
SBTree sbtree=new SBTree();
SBTreeViewer sbtreeViewer=new SBTreeViewer(sbtree);
AttributeViewer attributeViewer=new AttributeViewer();
SBT sbtclassfier=new SBT();
DataSet trainDataSet=null;
DataSet testDataSet=null;
private Map<String,Color> classColors;//不同类的不同颜色映射
private boolean showingTrainData=false;//平行坐标是否显示训练集
private boolean training=false;//当前是否正在建树(建树时不允许更改类标签)
//clone 训练集和SBTree,用来完成撤销操作
//(其实可以记录每次扫描后删除的DataItem,撤销时再加入DataSet,但开销不小。实现也麻烦。只演示撤销功能即可。)
DataSet tmpDataSet4Undo=null;
SBTree tmpSBTree4Undo=null;
private void initMenu(){//菜单项
JMenuBar jmb=new JMenuBar();
this.setJMenuBar(jmb);
JMenu menuFile=new JMenu("文件");
jmb.add(menuFile);
JMenuItem menuOpenTrainData=new JMenuItem("打开训练集");
menuOpenTrainData.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openTrainData();
}
});
menuFile.add(menuOpenTrainData);
JMenuItem menuSaveTrainData=new JMenuItem("保存训练集");
menuFile.add(menuSaveTrainData);
menuSaveTrainData.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
savaTrainData();
}
});
menuFile.addSeparator();
JMenuItem menuOpenSBT=new JMenuItem("打开SBTree");
menuFile.add(menuOpenSBT);
menuOpenSBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openSbt();
}
});
JMenuItem menuSaveSBT=new JMenuItem("保存SBTree");
menuFile.add(menuSaveSBT);
menuSaveSBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
savaSBTree();
}
});
JMenu menuSet=new JMenu("设置");
jmb.add(menuSet);
JMenuItem menuSetClassLabel=new JMenuItem("设置类别属性");
menuSet.add(menuSetClassLabel);
menuSetClassLabel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
setClassLabel();
}
});
JMenu menuTrain=new JMenu("训练");
jmb.add(menuTrain);
JMenuItem menuAnalysis=new JMenuItem("分析");
menuTrain.add(menuAnalysis);
menuAnalysis.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
analysis();
}
});
JMenuItem menuAutoScan=new JMenuItem("自动扫描");
menuTrain.add(menuAutoScan);
menuAutoScan.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
autoScan();
}
});
menuTrain.addSeparator();
// JMenuItem menuViewSBT=new JMenuItem("查看SBTree");
// menuTrain.add(menuViewSBT);
// menuViewSBT.addActionListener(new ActionListener(){
// public void actionPerformed(ActionEvent e) {
// viewSbt();
// }
// });
JMenuItem menuUndo=new JMenuItem("撤销");
menuTrain.add(menuUndo);
menuUndo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
undo();
}
});
JMenuItem menuRedo=new JMenuItem("重做");
menuTrain.add(menuRedo);
menuRedo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
redo();
}
});
menuTrain.addSeparator();
JMenuItem menuShowAttribute=new JMenuItem("单属性查看");
menuTrain.add(menuShowAttribute);
menuShowAttribute.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
showAttribute();
}
});
JMenu menuParal=new JMenu("平行坐标");
jmb.add(menuParal);
JMenuItem menuShowTrainData=new JMenuItem("显示训练集");
menuParal.add(menuShowTrainData);
menuShowTrainData.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
showTrainData();
}
});
JMenuItem menuShowTestData=new JMenuItem("显示测试集");
menuParal.add(menuShowTestData);
menuShowTestData.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
showTestData();
}
});
menuParal.addSeparator();
JMenuItem menuZoomOutH=new JMenuItem("水平拉宽");
menuParal.add(menuZoomOutH);
menuZoomOutH.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
zoomOutH();
}
});
JMenuItem menuZoomOutV=new JMenuItem("垂直拉高");
menuParal.add(menuZoomOutV);
menuZoomOutV.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
zoomOutV();
}
});
JMenuItem menuRestore=new JMenuItem("还原");
menuParal.add(menuRestore);
menuRestore.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
restoreParal();
}
});
menuParal.addSeparator();
JMenuItem menuToCenter=new JMenuItem("定位");
menuParal.add(menuToCenter);
menuToCenter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
toCenter();
}
});
JMenu menuTest=new JMenu("测试");
jmb.add(menuTest);
JMenuItem menuOpenSBT2=new JMenuItem("打开SBTree");
menuTest.add(menuOpenSBT2);
menuOpenSBT2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openSbt();
}
});
JMenuItem menuViewSBT2=new JMenuItem("查看SBTree");
menuTest.add(menuViewSBT2);
menuViewSBT2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
viewSbt();
}
});
JMenuItem menuSetTestData=new JMenuItem("指定测试集");
menuTest.add(menuSetTestData);
menuSetTestData.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
setTestData();
}
});
menuTest.addSeparator();
JMenuItem menuDoTest=new JMenuItem("测试");
menuTest.add(menuDoTest);
menuDoTest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
test();
}
});
}
private void initToolBar(){//工具条
final JToolBar toolBar = new JToolBar();
toolBar.setName("平行坐标分类器工具箱");
getContentPane().add(toolBar, BorderLayout.NORTH);
// final JButton btnOpenTrainData = new JButton();
// btnOpenTrainData.setText("打开训练集");
// toolBar.add(btnOpenTrainData);
// btnOpenTrainData.addActionListener(new ActionListener(){
// public void actionPerformed(ActionEvent e) {
// openTrainData();
// }
// });
// final JButton btnSaveTrainData = new JButton();
// btnSaveTrainData.setText("保存训练集");
// toolBar.add(btnSaveTrainData);
// btnSaveTrainData.addActionListener(new ActionListener(){
// public void actionPerformed(ActionEvent arg0) {
// savaTrainData();
// }
// });
// final JButton btnSetClassLabel = new JButton();
// btnSetClassLabel.addActionListener(new ActionListener() {
// public void actionPerformed(final ActionEvent arg0) {
// setClassLabel();
// }
// });
// btnSetClassLabel.setText("设置类别属性");
// toolBar.add(btnSetClassLabel);
// final JButton btnSaveSBT = new JButton();
// btnSaveSBT.addActionListener(new ActionListener(){
// public void actionPerformed(ActionEvent arg0) {
// savaSBTree();
// }
// });
// btnSaveSBT.setText("保存SBT");
// toolBar.add(btnSaveSBT);
// toolBar.addSeparator();
final JButton btnShowTrainSet = new JButton();
btnShowTrainSet.addActionListener(new ActionListener() {
public void acti
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于平行坐标的可视化交互分类器-src (112个子文件)
ParaClassifier.class 27KB
SBT.class 8KB
DataSet.class 8KB
SBT.class 8KB
ParaPanel.class 8KB
Attribute.class 6KB
AttributePanel.class 6KB
SBTree.class 5KB
ArffReader.class 5KB
SBBranch.class 5KB
CSVReader.class 5KB
ParamSettingDialog.class 5KB
SBTreePanel.class 4KB
SbtWriter.class 4KB
SbtReader.class 4KB
AttributeViewer.class 4KB
TestSBTree.class 3KB
ColorsManager.class 3KB
DataHeader.class 3KB
ClassLabelSettingDialog.class 3KB
SBTreeViewer.class 3KB
SbtTest.class 3KB
DataItem.class 2KB
ArffWriter.class 2KB
TestResultViewer.class 2KB
ParamSettingDialog$1.class 2KB
Line.class 1KB
TestSort.class 1KB
ClassLabelSettingDialog$2.class 1KB
AttributeViewer$6.class 1KB
ParaClassifier$32.class 1KB
AttributeViewer$4.class 977B
AttributeViewer$3.class 925B
AttributeViewer$1.class 912B
AttributeViewer$2.class 888B
ParaClassifier$33.class 867B
AttributeViewer$5.class 864B
MainWindow.class 840B
ClassLabelSettingDialog$1.class 787B
ArffFilter.class 762B
ParamSettingDialog$2.class 758B
SbtFilter.class 757B
CSVFilter.class 757B
ColorsManager$1.class 750B
SBException.class 703B
ParaClassifier$23.class 690B
ParaClassifier$26.class 690B
ParaClassifier$21.class 690B
ParaClassifier$30.class 690B
ParaClassifier$25.class 690B
ParaClassifier$22.class 690B
ParaClassifier$24.class 690B
ParaClassifier$28.class 689B
ParaClassifier$29.class 689B
ParaClassifier$31.class 689B
ParaClassifier$27.class 687B
ParaClassifier$13.class 684B
ParaClassifier$11.class 684B
ParaClassifier$19.class 684B
ParaClassifier$20.class 684B
ParaClassifier$15.class 684B
ParaClassifier$12.class 684B
ParaClassifier$14.class 684B
ParaClassifier$18.class 684B
ParaClassifier$16.class 684B
ParaClassifier$10.class 683B
ParaClassifier$17.class 683B
ParaClassifier$4.class 681B
ParaClassifier$7.class 681B
ParaClassifier$6.class 681B
ParaClassifier$3.class 681B
ParaClassifier$8.class 681B
ParaClassifier$1.class 681B
ParaClassifier$5.class 681B
ParaClassifier$2.class 681B
ParaClassifier$9.class 681B
DataWriter.class 303B
DataReader.class 301B
.classpath 226B
ParaClassifier.java 34KB
SBT.java 11KB
SBT.java 10KB
ParaPanel.java 9KB
DataSet.java 7KB
AttributePanel.java 6KB
ArffReader.java 6KB
Attribute.java 5KB
ParamSettingDialog.java 5KB
SBTreePanel.java 4KB
AttributeViewer.java 4KB
CSVReader.java 4KB
SBBranch.java 4KB
SBTree.java 4KB
SbtWriter.java 4KB
SbtReader.java 3KB
TestSBTree.java 2KB
ColorsManager.java 2KB
ClassLabelSettingDialog.java 2KB
DataItem.java 2KB
SBTreeViewer.java 2KB
共 112 条
- 1
- 2
mengpanfei
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页