从Swing GUI到系统控制台?

时间:2013-05-10 14:44:25

标签: java eclipse swing console

现在好了,我有这段代码:

package program.window;
import jaco.mp3.player.MP3Player;
public class obj {
private JFrame frame;
private static int xPosition = 30, yPosition = 30;
final JDesktopPane desktopPane = new JDesktopPane();

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                obj window = new obj();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public obj() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame = new JFrame();
    frame.setTitle("bD suite v.0.0012__EARLY__ALPHA");
    frame.setBounds(574, 100, 745, 542);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new BorderLayout(0, 0));

    JPanel panel = new JPanel();
    frame.getContentPane().add(panel, BorderLayout.NORTH);

    final JDesktopPane desktopPane = new JDesktopPane();
    frame.getContentPane().add(desktopPane, BorderLayout.CENTER);

    JButton btnMp3 = new JButton("Mp3");
    btnMp3.setIcon(new ImageIcon("/home/zmaj/Pictures/free-mp3-cutter-and-editor.png"));
    btnMp3.setSelectedIcon(new ImageIcon("/home/zmaj/Pictures/free-mp3-cutter-and-editor.png"));

    btnMp3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            JFileChooser mp3FileChooser = new JFileChooser();
            mp3FileChooser.showOpenDialog(frame);
            File selectedFile = mp3FileChooser.getSelectedFile();
            if (selectedFile != null) {
                JInternalFrame mp3Frame =
                        new JInternalFrame(selectedFile.getName(), true, true, true, true);
                mp3Frame.setTitle("MP3 player");
                mp3Frame.getContentPane().add(new JLabel("Sviram " + selectedFile.getName()));
                mp3Frame.setSize(200, 50);
                mp3Frame.setLocation(xPosition, yPosition);
                xPosition += 100;
                yPosition += 25;
                desktopPane.add(mp3Frame);
                mp3Frame.setVisible(true);
                final MP3Player player = new MP3Player(selectedFile);
                player.play();
                mp3Frame.addInternalFrameListener(new InternalFrameAdapter() {
                    public void internalFrameClosing(InternalFrameEvent e) {
                        player.stop();
                    }
                });
            }

        }
    });
    panel.add(btnMp3);

    JButton btnImage = new JButton("Image");
    btnImage.setIcon(new ImageIcon("/home/zmaj/Pictures/cloud-image.jpg"));
    btnImage.setSelectedIcon(new ImageIcon("/home/zmaj/Pictures/cloud-image.jpg"));
    btnImage.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            JFileChooser imageFileChooser = new JFileChooser();
            imageFileChooser.showOpenDialog(frame);
            File selectedFile = imageFileChooser.getSelectedFile();
            if (selectedFile != null) {
                JInternalFrame imageFrame = new JInternalFrame(
                        selectedFile.getName(), true, true, true, true);
                imageFrame.setTitle("Prikazujem " + selectedFile.getName());
                imageFrame.getContentPane().add(new JLabel(new
                        ImageIcon(selectedFile.getPath())));
                imageFrame.setSize(200, 200);
                imageFrame.setLocation(xPosition, yPosition);
                xPosition += 50;
                yPosition += 50;
                desktopPane.add(imageFrame);
                imageFrame.setVisible(true);
            }

        }
    });
    panel.add(btnImage);

    JButton btnText = new JButton("Text");
    btnText.setIcon(new ImageIcon("/home/zmaj/Pictures/insert-text.png"));
    btnText.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
              JFrame frame=new JFrame("Text Frame");
              JTextArea textArea=new JTextArea("Welcome to notes,please write your text!",10,20);
              frame.getContentPane().add(textArea);
              frame.setTitle("bD notes");
              frame.getContentPane().setLayout(new FlowLayout());
              frame.setSize(250,250);
              frame.setVisible(true);
        }
    });
    panel.add(btnText);
 }
}

我想添加一个按钮,打开一个包含系统控制台的新框架。我该怎么做?

我愿意导入新库并安装新的eclipse插件。

1 个答案:

答案 0 :(得分:0)

对于Windows,您可以打开system console,只需致电:

           Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe");
        try {
            p.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

当然,如果您在不同的操作系统上运行应用程序,这将是一个不同的调用。

编辑: 如果您希望此代码与OS无关,请使用:

String os = System.getProperty("os.name");
if(os.startsWith("Windows")) {
        // make the command for windows
} else {
      if(os.startsWith("Linux") {
             // make the command for linux
      else {  
             // make the command for mac
      }
}

查找here如何在linux中打开系统控制台,在here找到mac。