利用java的管道重定義。核心代碼如下,鄭肆褲剩下自己組織
創(chuàng)新互聯是專業(yè)的威海網站建設公司,威海接單;提供成都做網站、網站建設、外貿營銷網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行威海網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
Process process = Runtime.getRuntime().exec("cmd");
PrintWriter out = new PrintWriter(process.getOutputStream());
String cmd ; //你的cmd命令
InputStream is = process.getInputStream() //cmd返回出來的信息
out.println(cmd); //輸入你的喊簡命令雹裂
out.flush(); //寫到控制臺
package?image;
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Dimension;
import?java.awt.GridLayout;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
import?javax.swing.SwingUtilities;
public?class?PanelRunner?extends?JFrame
{
private?static?final?long?serialVersionUID?=?1L;
private?static?void?initPanels?(?JFrame?pr?)
{
for?(?int?i?=?0;?i??5;?i++?)
{
JPanel?panel?=?new?JPanel?();
switch?(i)
{
case?0:
panel.setBackground?(Color.RED);
panel.setPreferredSize?(new?Dimension?(200,?100));
pr.add?(panel,?BorderLayout.NORTH);
break;
case?1:
panel.setBackground?(Color.YELLOW);
panel.setPreferredSize?(new?Dimension?(200,?300));
pr.add?(panel,?BorderLayout.EAST);
break;
case?2:
panel.setBackground?(Color.ORANGE);
panel.setPreferredSize?(new?Dimension?(200,?100));
pr.add?(panel,?BorderLayout.SOUTH);
break;
case?3:
panel.setBackground?(Color.WHITE);
panel.setPreferredSize?(new?Dimension?(200,?300));
pr.add?(panel,?BorderLayout.WEST);
break;
case?4:
pr.add?(panel,?BorderLayout.CENTER);
panel.setPreferredSize?(new?Dimension?(200,?100));
panel.setLayout?(new?GridLayout?(1,?2));
for?(?源改猜int?j?=?0;?j??2;?j++?)
{
JPanel?subPanel?=?new?JPanel?();
subPanel.setPreferredSize?(new?Dimension?(200,?100));
Color?color?=?j?==?0???Color.BLUE?:?Color.GREEN;
subPanel.setBackground?(color);
panel.add?(subPanel);
}
break;
default:
break;
}
}
}
private?static?void?initFrame?(?JFrame?pr?)
{
pr.setLayout?(new?BorderLayout?());
pr.setSize?(600,?300);
pr.setLocationRelativeTo?(null);
pr.setResizable?(false);
pr.setDefaultCloseOperation?(JFrame.EXIT_ON_CLOSE);
}
public?static?void?main?(?String[]?args?)
{
SwingUtilities.invokeLater?(new?Runnable?()
{
@Override
public?void?雹型run?()
{
PanelRunner?pr?=?殲絕new?PanelRunner?();
initFrame?(pr);
initPanels?(pr);
pr.setVisible?(true);
}
});
}
}
一: 首先弄清題目的意思
A.需要的主要組件列表:
1. ?創(chuàng)建一個窗口,窗口標題叫Information
2. ?3個標簽, 用于顯示文字 Name Number Class
3. ?3個文本框, 用于填寫信息
4. ?1個按鈕, ?文字是確認
5. ?衡攔1個文本域
B.業(yè)務邏輯
1. 當點擊按鈕確認的時候, 把 文本框的信息顯示到文本域
C.設計的主要技術
JLabel , JButton, JTextField ...等, 都是swing的組件 , ?所以應該使用swing進行創(chuàng)建
二: ?確定使用的布局
swing雖然重寫了大部分的組件, 但是布局, 依舊沿襲awt技術
分析圖片上的布局:
至少有2種方法可以實現,?
方法一: 絕對布局 , 優(yōu)點: ?配合可視化GUI拖曳, 可以完美的實現圖上的組件的位置
但是缺點也是致命的, 不同的操作系統(tǒng)平臺下, 可能會出現位置的移動,
只適合開發(fā)平臺, 移植效果差 . ?所以不推薦使用
方法二: 靈活的表格布局, 配合流式布局 , 所有操作系統(tǒng)下,顯示效果都比較統(tǒng)一.?
三: 效果圖
四: 參考代碼
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?FrameDemo?extends?答納JFrame?{
//申明需要的組件
private?final?JTextField?jtf1,jtf2,jtf3;
private?final?JTextArea?jta;
public?FrameDemo()?{
setTitle("Information");//設置窗口標題
setSize(320,?360);//設置窗口大小
setLocationRelativeTo(null);//設置窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//設置關閉時退出虛擬機
getContentPane().setLayout(new?FlowLayout());//設置窗口布局為流式布局
JPanel?jp?=?new?JPanel(new?GridLayout(4,?2));//設置jp面板為表格布局4行2列
//第一行
JPanel?jp01?=?new?JPanel();
JLabel?jl1?=?new?JLabel("Name:");
jp01.add(jl1);
JPanel?jp1?=?new?JPanel();
jtf1?=?new?JTextField(8);
jp1.add(jtf1);
//第二行
JPanel?jp02?=?new?JPanel();
JLabel?jl2?=?new?JLabel("Number:");
jp02.add(jl2);
JPanel?jp2?=?new?JPanel();
jtf2?=?new?JTextField(8);
jp2.add(jtf2);
//第三行
JPanel?jp03?=?new?JPanel();
JLabel?jl3?=?new?JLabel("Class:");
jp03.add(jl3);
JPanel?jp3?=?new?JPanel();
jtf3?=?new?JTextField(8);
jp3.add(jtf3);
//第四行
JPanel?jp04?=?new?JPanel();
JLabel?jl4?=?new?JLabel("咐舉胡");
jp04.add(jl4);
JPanel?jp4?=?new?JPanel();
JButton?jb?=?new?JButton("確認");
jp4.add(jb);
jp.add(jp01);
jp.add(jp1);
jp.add(jp02);
jp.add(jp2);
jp.add(jp03);
jp.add(jp3);
jp.add(jp04);
jp.add(jp4);
getContentPane().add(jp);
jta?=?new?JTextArea();
jta.setColumns(20);//設置文本域的大小
jta.setEditable(false);//設置文本域不可編輯
jta.setBackground(jp.getBackground());//設置文本域的背景色和面板一樣
getContentPane().add(jta);
jb.addActionListener(new?ActionListener()?{//給按鈕添加事件
public?void?actionPerformed(ActionEvent?e)?{//點擊按鈕,顯示信息到文本域
String?name?=?jtf1.getText();
String?number?=?jtf2.getText();
String?clazz?=?jtf3.getText();
jta.setText("You?name?is?"+name+"?number?is?"+number+"?class?is?"+clazz);
}
});
}
public?static?void?main(String[]?args)?{
new?FrameDemo().setVisible(true);//創(chuàng)建窗口,被設置為可見
}
}
五: 拓展
雖然圖形界面的實現方法是多樣的, ?我們一定要根據具體情況, 選擇一個比較優(yōu)化的 合理的, 符合業(yè)務邏輯的實現方法
jframe.setVisible(true) 即可讓窗口可見.
API里關于該方法的說明
public void setVisible(boolean?b)
根據參數 b 的值顯示或隱藏此 Window。
窗口的其他常用屬性的設置,詳細見下面的例子
示例圖
參考代碼和詳細的注釋
import?java.awt.Color;
import?java.awt.Font;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
public?class?MyFrame?extends?JFrame?段前{
//構造函數
public?MyFrame()?{
JLabel?jl?=?new?JLabel("床前明月光,疑是地上霜。",JLabel.CENTER);//文字標簽,文字居中
jl.setForeground(Color.BLUE);//文字的顏色
jl.setFont(new?Font("仿宋",?Font.BOLD,?20));//設置文字,字體
add(jl);//把文字添加到窗口
//getContentPane().setBackground(Color.WHITE);?//設置窗口(內容面板)的背景顏色
setTitle("窗口示例");//?窗口標題
setSize(300,?200);//?窗口大小?寬300?高200
setLocationRelativeTo(null);//?握桐清窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//?當窗口關閉時,程序結束
}
//main函數
public?static?輪含void?main(String[]?args)?{
MyFrame?frame?=?new?MyFrame();//?創(chuàng)建窗口
frame.setVisible(true);//?讓該窗口實例可見
}
}