java中
JPanel如何添加cmd.exe
JPanel如何添加cmd.exe
解决方案 »
- 刚刚学javabean,问个小问题
- java求1000之内完数,我写好了,可是没有任何输出结果,谁能帮我看一下,谢谢啦
- 很急的问题,请你帮帮忙
- JSpinner的addChangeListener问题。
- java基础问题,求教.
- Json解析,新手求帮助
- Applet与Servlet之间的通讯方式问题
- jbuilder 5.0里总是弹出烦人的中文输入法,如何解决?
- String中的getBytes()如何存储一个中文字符
- double 转 String
- jsp中调用的applet,如何手动调td的宽度(table是applet中的,在applet中可以手动调节td的宽度)
- 求助一个很菜的javascript问题
String cmd = "cmd命令";
Process p = Runtime.getRuntime().exec(cmd);
//这个也是从这个论坛学习到的,呵呵!
String cmd = "cmd命令";
Process p = Runtime.getRuntime().exec(cmd);
它会跳出一个界面,我想把这个界面放到jPanel中
怎么放啊
并且把它放在JPanel中
http://blog.csdn.net/wh_xiexing/archive/2007/12/05/1919009.aspx
如果是以上意思
添加个按钮,事件触发时如下代码执行:Runtime.getRuntime().exec("rundll32 url.dll FileProtocolHandler file://C:\\WINDOWS\\system32\\cmd.exe");测试成功。
import java.awt.event.*;
import java.io.*;import javax.swing.*;public class MyDOS extends JFrame {
/**
*
*/
private static final long serialVersionUID = -5418344602348249043L;
private JPanel pup = new JPanel();
private JPanel pdown = new JPanel();
private JTextField txtCommand = new JTextField(45);
private JTextArea txtContent = new JTextArea();
private JButton btnExec = new JButton("Execute"); public MyDOS() {
// 指定框架的布局管理器
setLayout(new BorderLayout());
// 设置文本框,文本域字体
txtCommand.setFont(new Font("", Font.BOLD, 13));
txtContent.setFont(new Font("", Font.BOLD, 13));
// 指定面板的布局
pup.setLayout(new BorderLayout());
pdown.setLayout(new FlowLayout()); // 将文本域添加导面板中
pup.add(txtContent);
// 为文本域添加滚动条
pup.add(new JScrollPane(txtContent));
// 将文本框,按钮添加到面板中
pdown.add(txtCommand);
pdown.add(btnExec); // 添加面板到框架中
this.add(pup, BorderLayout.CENTER);
this.add(pdown, BorderLayout.SOUTH); // 设置事件 // 添加按钮事件
btnExec.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s;
// 获取文本框中的命令
String command = txtCommand.getText().trim();
Process process;
try {
process = Runtime.getRuntime().exec("cmd /c " + command);
// 截获被调用程序的DOS运行窗口的标准输出
BufferedReader br = new BufferedReader(
new InputStreamReader(process.getInputStream()));
while ((s = br.readLine()) != null)
txtContent.append(s + "\r\n"); process.waitFor();
txtCommand.setText("");
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e2) {
e2.printStackTrace();
}
}
}); // 添加键盘Enter事件
txtCommand.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) {
// 当按下回车时
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
String s;
// 获取文本框中的命令
String command = txtCommand.getText().trim();
Process process;
try {
process = Runtime.getRuntime()
.exec("cmd /c " + command);
// 截获被调用程序的DOS运行窗口的标准输出
BufferedReader br = new BufferedReader(
new InputStreamReader(process.getInputStream()));
while ((s = br.readLine()) != null)
txtContent.append(s + "\r\n"); process.waitFor();
txtCommand.setText("");
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e2) {
e2.printStackTrace();
}
}
} public void keyReleased(KeyEvent e) {
} public void keyTyped(KeyEvent e) {
}
});
}
public static void main(String[] args) {
MyDOS frame = new MyDOS();
frame.setTitle("MyDOS");
frame.setSize(666, 444);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
这里的实现是读取cmd进程里边的输入输出啊,只是外部表现不同而已,应该能满足你的要求吧