📄 consoleoptionsframe.java
字号:
package net.aetherial.gis.garmin;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import javax.comm.*;
import net.aetherial.gis.garmin.*;
class ConsoleOptionsFrame extends JFrame implements ActionListener
{
private ConsoleConfig config;
private JTextField serverPort, serverName;
private JComboBox commPorts;
public ConsoleOptionsFrame ()
{
config = new ConsoleConfig ();
getContentPane().setLayout (new BorderLayout ());
setTitle ("Options");
setSize (400, 300);
setIconImage (ConsoleFrame.icon);
JTabbedPane optionsPane = new JTabbedPane();
optionsPane.add ("GPS", getGPS ());
// optionsPane.add ("Files", getFiles ());
// optionsPane.add ("Startup", getStartup ());
// optionsPane.add ("Network", getNetwork ());
JPanel buttons = new JPanel ();
JButton okButton = new JButton ("OK");
okButton.addActionListener (this);
JButton saveButton = new JButton ("Save");
saveButton.addActionListener (this);
JButton cancelButton = new JButton ("Cancel");
cancelButton.addActionListener (this);
buttons.add (saveButton);
buttons.add (okButton);
buttons.add (cancelButton);
getContentPane().add (optionsPane, "Center");
getContentPane().add (buttons, "South");
}
private JPanel getGPS ()
{
JPanel panel = new JPanel ();
JLabel commLabel = new JLabel ("Serial Port:");
commPorts = new JComboBox ();
commPorts.setEditable (false);
for (Enumeration e = CommPortIdentifier.getPortIdentifiers (); e.hasMoreElements (); )
{
CommPortIdentifier cpi = (CommPortIdentifier) e.nextElement ();
if (cpi.getPortType () == CommPortIdentifier.PORT_SERIAL)
commPorts.addItem (cpi.getName ());
}
commPorts.setSelectedItem (config.getSerialPort ());
commLabel.setLabelFor (commPorts);
JButton autoDetect = new JButton ("Autodetect");
autoDetect.addActionListener (this);
panel.add (commLabel);
panel.add (commPorts);
// panel.add (autoDetect);
return panel;
}
private JPanel getFiles ()
{
JPanel panel = new JPanel ();
return panel;
}
private JPanel getStartup ()
{
JPanel c = new JPanel (new GridLayout(4, 1));
c.add (new JCheckBox ("Initialize GPS upon startup"), "1");
c.add (new JCheckBox ("Obtain location upon startup"), "2");
return c;
}
private JPanel getNetwork ()
{
JPanel panel = new JPanel (new GridLayout (4, 1));
JPanel serverPanel = new JPanel (new FlowLayout (FlowLayout.LEFT));
JLabel serverLabel = new JLabel ("Upload server: ");
serverName = new JTextField (config.getServer (), 16);
serverLabel.setLabelFor (serverName);
serverPanel.add (serverLabel);
serverPanel.add (serverName);
JPanel portPanel = new JPanel (new FlowLayout (FlowLayout.LEFT));
JLabel portLabel = new JLabel ("Server port: ");
serverPort = new JTextField (config.getServerPort (), 6);
portLabel.setLabelFor (serverPort);
portPanel.add (portLabel);
portPanel.add (serverPort);
panel.add (serverPanel, "1");
panel.add (portPanel, "2");
return panel;
}
public void actionPerformed (ActionEvent evt)
{
String arg = evt.getActionCommand ();
System.out.println (arg);
if (arg.equals ("Cancel"))
{
dispose ();
}
else if (arg.equals ("Save"))
{
saveOptions ();
}
else if (arg.equals ("OK"))
{
saveOptions ();
dispose ();
}
else if (arg.equals ("Autodetect"))
{
ConsoleAutoDetectProgressFrame d = new ConsoleAutoDetectProgressFrame ();
d.show ();
try
{
Thread.sleep (1000);
}
catch (Exception e)
{
}
// JFrame autoDetectFrame = new ConsoleAutoDetectFrame ();
d.dispose ();
// autoDetectFrame.show ();
}
}
private void saveOptions ()
{
// config.setServerName (serverName.getText ());
// config.setServerPort (serverPort.getText ());
config.setSerialPort ((String) commPorts.getSelectedItem ());
config.commit ();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -