一: 首先弄清題目的意思
成都創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為會同企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,會同網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
A.需要的主要組件列表:
1. ?創(chuàng)建一個窗口,窗口標(biāo)題叫Information
2. ?3個標(biāo)簽, 用于顯示文字 Name Number Class
3. ?3個文本框, 用于填寫信息
4. ?1個按鈕, ?文字是確認
5. ?1個文本域
B.業(yè)務(wù)邏輯
1. 當(dāng)點擊按鈕確認的時候, 把 文本框的信息顯示到文本域
C.設(shè)計的主要技術(shù)
JLabel , JButton, JTextField ...等, 都是swing的組件 , ?所以應(yīng)該使用swing進行創(chuàng)建
二: ?確定使用的布局
swing雖然重寫了大部分的組件, 但是布局, 依舊沿襲awt技術(shù)
分析圖片上的布局:
至少有2種方法可以實現(xiàn),?
方法一: 絕對布局 , 優(yōu)點: ?配合可視化GUI拖曳, 可以完美的實現(xiàn)圖上的組件的位置
但是缺點也是致命的, 不同的操作系統(tǒng)平臺下, 可能會出現(xiàn)位置的移動,
只適合開發(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");//設(shè)置窗口標(biāo)題
setSize(320,?360);//設(shè)置窗口大小
setLocationRelativeTo(null);//設(shè)置窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//設(shè)置關(guān)閉時退出虛擬機
getContentPane().setLayout(new?FlowLayout());//設(shè)置窗口布局為流式布局
JPanel?jp?=?new?JPanel(new?GridLayout(4,?2));//設(shè)置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);//設(shè)置文本域的大小
jta.setEditable(false);//設(shè)置文本域不可編輯
jta.setBackground(jp.getBackground());//設(shè)置文本域的背景色和面板一樣
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)建窗口,被設(shè)置為可見
}
}
五: 拓展
雖然圖形界面的實現(xiàn)方法是多樣的, ?我們一定要根據(jù)具體情況, 選擇一個比較優(yōu)化的 合理的, 符合業(yè)務(wù)邏輯的實現(xiàn)方法
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class vv extends JDialog {
private static final long serialVersionUID = 1L;
private JLabel l_Id = new JLabel("登陸賬戶", JLabel.CENTER);
private JLabel l_pw = new JLabel("登陸密碼", JLabel.CENTER);
private JTextField t_Id = new JTextField(10);
private JPasswordField t_pw = new JPasswordField(10);
private JButton btnLogin;
private JButton btnClose;
public vv() {
super();
setResizable(false);
getContentPane().setBackground(new Color(225, 225, 225));
getContentPane().setLayout(null);
initialize();
}
protected void initialize() {
setTitle("系統(tǒng)登錄");
l_Id.setBounds(48, 43, 53, 25);
t_Id.setBounds(110, 43, 150, 25);
l_pw.setBounds(48, 93, 53, 25);
t_pw.setBounds(110, 93, 150, 25);
getContentPane().add(l_Id);
getContentPane().add(l_pw);
getContentPane().add(t_Id);
getContentPane().add(t_pw);
btnLogin = new JButton();
btnLogin.setText("登 錄");
btnLogin.setBounds(70, 142, 85, 28);
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addBtnLoginActionListener();
}
});
getContentPane().add(btnLogin);
btnClose = new JButton();
btnClose.setText("關(guān) 閉");
btnClose.setBounds(175, 142, 85, 28);
btnClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
System.exit(-1);
}
});
getContentPane().add(btnClose);
}
private void addBtnLoginActionListener() {
String user = t_Id.getText();
String password = new String(t_pw.getPassword());
if (user.equals("")) {
JOptionPane.showMessageDialog(this, "帳號不可為空", "Caution",
JOptionPane.WARNING_MESSAGE);
return;
}
if (password.equals("")) {
JOptionPane.showMessageDialog(this, "密碼不可為空", "Caution",
JOptionPane.WARNING_MESSAGE);
return;
}
String sql = "select * FROM login WHERE id = '" + user + "' and pw = '"
+ password + "'";
boolean success = false;
// TODO:數(shù)據(jù)校驗 success = executeQuery(sql);
if (success) {
// TODO: 如果數(shù)據(jù)校驗成功 顯示主界面 并關(guān)閉登錄界面
JOptionPane.showMessageDialog(this, "成功登錄", "提示",
JOptionPane.INFORMATION_MESSAGE);
this.dispose();
} else {
JOptionPane.showMessageDialog(this, "帳號或密碼錯誤!", "警告",
JOptionPane.WARNING_MESSAGE);
t_pw.requestFocus(); // 密碼框選中
}
}
public Dimension getPreferredSize() {
return new Dimension(320, 170);
}
public void show() {
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screen = tk.getScreenSize();
Dimension d = getSize();
this.setLocation((screen.width - d.width) / 2,
(screen.height - d.height) / 2);
// 輸入密碼后回車相當(dāng)于點擊了登錄按鈕
getRootPane().setDefaultButton(btnLogin);
t_pw.requestFocus();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300, 220);
super.show();
}
public static void main(String[] args) {
vv loginFrame = new vv();
loginFrame.setVisible(true);
}
}
希望對你有幫助
可以用下面的代碼放在界面所在的構(gòu)造函數(shù)內(nèi),便出現(xiàn)美麗的Nimbus界面風(fēng)格.
至于具體的界面呢.就看你的天分了...
try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Nimbus風(fēng)格,新出來的外觀,JDK 6 Update10 版本開始出現(xiàn)
} catch (Exception e) {
}
我在博客里應(yīng)用的樣式是SublimeText編輯器里面的主題,這跟我用它來編寫代碼有關(guān)。其實如果ST支持復(fù)制為富文本形式的話,事情就要方便得多,直接copy然后paste到word里就把樣式帶上了,包括縮進,代碼高亮等。遺憾的是它不支持。所以出路便是找一個可用的ST插件讓它支持富文本復(fù)制。
好在ST流行度大,社區(qū)活躍,插件眾多,還真有款能夠完成我需求的插件--n1k0/SublimeHighlight。更詳細的關(guān)于如何安裝的問題等可見它的項目頁面。
簡單點其實跟安裝其他ST插件是一樣的,先Ctrl+Shift+P調(diào)出control panel,然后輸入install package,不用輸完,當(dāng)輸入了Install后便出來了,然后回車等待插件列表的顯示,這個過程大概有個幾秒鐘的樣子。
然后輸入插件名稱sublimehighlight,選中并進行安裝。如果這一步進行順利,則跳到下一節(jié)。
當(dāng)你進行到上面一步發(fā)現(xiàn)搜不出該插件時,需要手動添加該插件的repo到本地。
具體做法是退出剛才的界面重新輸入Ctrl+Shift+P調(diào)出control panel,輸入add repository 選中并回車。
這時界面下方會出現(xiàn)輸入repo地址的地方,將輸入后回車確定。
當(dāng)提示添加成功后再次進行上面安裝插件的步驟來到插件列表,輸入sublimehighlight,選中該插件進行安裝,如果一切順利,恭喜你萬里長征第一步走完!
設(shè)置喜歡的代碼樣式
安裝完成后,可以設(shè)置你喜歡的樣式,這個樣式是你復(fù)制出來的樣式,跟你在ST里面用的代碼樣式是沒有關(guān)系的。也就是說最終復(fù)制出來的代碼的樣式以這個插件的設(shè)置為準(zhǔn)。
可選的樣式可以在插件的GitHub主頁看到,下圖直接來自其項目頁面,圖中包括了主題的名稱和預(yù)覽:
設(shè)置方法是依次點開preferences=package settings=sublimehighlight=settings - user
當(dāng)前文章:java代碼博客界面 html5博客代碼
文章源于:http://www.yijiale78.com/article38/hhscpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信小程序、品牌網(wǎng)站制作、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)