📄 mapexplorer.java
字号:
brMap.setPreferredSize(new java.awt.Dimension(0, 0));
brMap.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
brMapPropertyChange(evt);
}
});
javax.swing.GroupLayout pnCentralLayout = new javax.swing.GroupLayout(pnCentral);
pnCentral.setLayout(pnCentralLayout);
pnCentralLayout.setHorizontalGroup(
pnCentralLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(brMap, javax.swing.GroupLayout.DEFAULT_SIZE, 717, Short.MAX_VALUE)
);
pnCentralLayout.setVerticalGroup(
pnCentralLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(brMap, javax.swing.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE)
);
jPanel2.add(pnCentral, java.awt.BorderLayout.CENTER);
fileMenu.setText("File");
fileMenu.setToolTipText("File Operations");
miOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
miOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/open.png"))); // NOI18N
miOpen.setText("Open File...");
miOpen.setToolTipText("Opens a document in this window");
miOpen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
miOpenActionPerformed(evt);
}
});
fileMenu.add(miOpen);
miSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
miSave.setText("Save Page As...");
miSave.setToolTipText("Saves this document as a file");
miSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
miSaveActionPerformed(evt);
}
});
fileMenu.add(miSave);
miOZIExport.setText("Export As OZI map...");
miOZIExport.setToolTipText("Saves this document as a file");
miOZIExport.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
miOZIExportActionPerformed(evt);
}
});
fileMenu.add(miOZIExport);
miPrint.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
miPrint.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/print.png"))); // NOI18N
miPrint.setText("Print");
miPrint.setToolTipText("Prints this page");
miPrint.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
miPrintActionPerformed(evt);
}
});
fileMenu.add(miPrint);
fileMenu.add(jSeparator3);
miExit.setText("Exit");
miExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
miExitActionPerformed(evt);
}
});
fileMenu.add(miExit);
mainJMenuBar.add(fileMenu);
viewMenu.setText("View");
mainJMenuBar.add(viewMenu);
toolsMenu.setText("Tools");
mainJMenuBar.add(toolsMenu);
setJMenuBar(mainJMenuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 717, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 496, Short.MAX_VALUE)
);
}// </editor-fold>//GEN-END:initComponents
private void cbInGradeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbInGradeActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_cbInGradeActionPerformed
private void miOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miOpenActionPerformed
//brMain.open();
}//GEN-LAST:event_miOpenActionPerformed
private void miSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miSaveActionPerformed
//brMain.save();
}//GEN-LAST:event_miSaveActionPerformed
private void miPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miPrintActionPerformed
//brMain.print();
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.LANDSCAPE);
aset.add(new Copies(1));
aset.add(new JobName("Map", null));
// locate a print service that can handle the request
PrintService[] services =
PrintServiceLookup.lookupPrintServices(flavor, aset);
if (services.length > 0) {
System.out.println("selected printer " + services[0].getName());
/// create a print job for the chosen service
DocPrintJob pj = services[0].createPrintJob();
try {
//Create a Doc object to hold the print data.
Doc doc = new SimpleDoc(brMap, flavor, null);
//print mapM
pj.print(doc, aset);
} catch(PrintException e) {
System.err.println(e);
}
}
}//GEN-LAST:event_miPrintActionPerformed
private void miExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miExitActionPerformed
dispose();
}//GEN-LAST:event_miExitActionPerformed
private void btResetSelectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btResetSelectionActionPerformed
((MapClipper)brMap).bAutoArea = true;
((MapClipper)brMap).rcArea = new Rectangle(
68, 32,
((MapClipper)brMap).getWidth() - 68 - 2, ((MapClipper)brMap).getHeight() - 32 - 28);
if(null!=brMapBack){
brMapBack.setBounds(((MapClipper)brMap).rcArea);
}
((MapClipper)brMap).repaint();
btResetSelection.setEnabled(false);
}//GEN-LAST:event_btResetSelectionActionPerformed
private void cbSelectWorkingAreaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSelectWorkingAreaActionPerformed
((MapClipper)brMap).setSelectionMode(cbSelectWorkingArea.isSelected());
}//GEN-LAST:event_cbSelectWorkingAreaActionPerformed
private void tbMetroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbMetroActionPerformed
brMap.getSprites().clear();
if( tbMetro.isSelected() ){
SPBMetro mt = new SPBMetro();
mt.add(brMap);
}
brMap.repaint();
}//GEN-LAST:event_tbMetroActionPerformed
private void miOZIExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_miOZIExportActionPerformed
JFileChooser fc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Map Files", "bmp");
fc.setFileFilter(filter);
if( JFileChooser.APPROVE_OPTION == fc.showDialog(MapExplorer.this, "Export As OZI Map") ){
((MapClipper)brMap).saveMap(fc.getSelectedFile().getAbsolutePath());
((MapClipper)brMap).addBoundAsSprite();
((MapClipper)brMap).repaint();
}
}//GEN-LAST:event_miOZIExportActionPerformed
private void pnCentralComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_pnCentralComponentResized
//((MapClipper)brMap).setSize(pnCentral.getSize());
}//GEN-LAST:event_pnCentralComponentResized
private void tbCompositeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbCompositeActionPerformed
if( tbComposite.isSelected() ){
brMapBack = new org.jdic.web.BrMapOver();
brMapBack.setMapProvider(brMap.getMapProvider());
brMapBack.setSyncMap(brMap);
brMapBack.bnZoomMinus.setVisible(false);
brMapBack.bnZoomPlus.setVisible(false);
brMapBack.sbZoomLevel.setVisible(false);
brMap.getCentralPanel().add(brMapBack);
if(((MapClipper)brMap).bAutoArea){
((MapClipper)brMap).rcArea.width /= 2;
((MapClipper)brMap).rcArea.height /= 2;
((MapClipper)brMap).bAutoArea = false;
btResetSelection.setEnabled(true);
}
brMapBack.setBounds( ((MapClipper)brMap).rcArea );
brMap.repaint();
} else {
brMap.getCentralPanel().remove(brMapBack);
brMap.validate();
brMapBack = null;
brMap.repaint();
}
}//GEN-LAST:event_tbCompositeActionPerformed
private void bnGoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bnGoActionPerformed
if( brMap.isMapReady() ){
brMap.execJS( ":_findAddress(\"" + edAddress.getText().replace("\'", "\\\'") + "\")" );
}
}//GEN-LAST:event_bnGoActionPerformed
private void edAddressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_edAddressActionPerformed
bnGoActionPerformed(evt);
}//GEN-LAST:event_edAddressActionPerformed
private void edAddressKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_edAddressKeyPressed
}//GEN-LAST:event_edAddressKeyPressed
private void edAddressKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_edAddressKeyTyped
//BasicLookAndFeel
edAddress.setBackground(UIManager.getColor("text"));
}//GEN-LAST:event_edAddressKeyTyped
private void edAddressMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_edAddressMouseClicked
// TODO add your handling code here:
}//GEN-LAST:event_edAddressMouseClicked
private void brMapPropertyChange(java.beans.PropertyChangeEvent evt) {
String stPN = evt.getPropertyName();
if(stPN.equals("securityIcon")
|| stPN.equals("navigatedURL")
|| stPN.equals("progressBar")
){
String stNV = (String)evt.getNewValue();
if(null==stNV)
stNV = "";
String st[] = stNV.split(",");
/*
if(stPN.equals("navigatedURL")) {
edAddress.setText( st[0] );
stOldParams = "";
brXMLTree.empty();
} else*/ if(stPN.equals("progressBar")) {
int iMax = Integer.parseInt(st[0]),
iPos = Integer.parseInt(st[1]);
if(0==iMax){
progressBar.setVisible(false);
} else {
progressBar.setMaximum(iMax);
progressBar.setValue(iPos);
progressBar.setVisible(true);
}
} /*else if(stPN.equals("securityIcon")) {
bnLocker.setVisible(!stNV.equals("0"));
} */
} else if( stPN.equals("mouseGeoPos") ){
Point2D gp = ((BrMapMousePos)evt.getNewValue()).getMouseGeoPos();
Double Latitude = gp.getX();
Double Longitude = gp.getY();
edLat.setText( cbInGrade.isSelected() ? BrMap.getGrade(Latitude, BrMap.LAT) : ("" + Latitude));
edLng.setText( cbInGrade.isSelected() ? BrMap.getGrade(Longitude, BrMap.LNG) : ("" + Longitude));
}
}
private void cbGridActionPerformed(java.awt.event.ActionEvent evt) {
brMap.repaint();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {public void run() {
new MapExplorer().setVisible(true);
}});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
javax.swing.JButton bnGo;
org.jdic.web.BrMap brMap;
javax.swing.JButton btResetSelection;
javax.swing.JCheckBox cbGrid;
javax.swing.JCheckBox cbInGrade;
javax.swing.JToggleButton cbSelectWorkingArea;
javax.swing.JTextField edAddress;
javax.swing.JTextField edLat;
javax.swing.JTextField edLng;
javax.swing.JTextField edScale;
javax.swing.JMenu fileMenu;
javax.swing.JPanel jPanel2;
javax.swing.JSeparator jSeparator3;
javax.swing.JLabel lbAddress;
javax.swing.JLabel lbLat;
javax.swing.JLabel lbLng;
javax.swing.JLabel lbMeter;
javax.swing.JMenuBar mainJMenuBar;
javax.swing.JMenuItem miExit;
javax.swing.JMenuItem miOZIExport;
javax.swing.JMenuItem miOpen;
javax.swing.JMenuItem miPrint;
javax.swing.JMenuItem miSave;
javax.swing.JPanel pnCentral;
javax.swing.JProgressBar progressBar;
javax.swing.JPanel statusPanel;
javax.swing.JToolBar tbArea;
javax.swing.JToggleButton tbComposite;
javax.swing.JToggleButton tbMetro;
javax.swing.JMenu toolsMenu;
javax.swing.JMenu viewMenu;
// End of variables declaration//GEN-END:variables
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -