jframe.setVisible(true) 即可讓窗口可見.

“專業(yè)、務實、高效、創(chuàng)新、把客戶的事當成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 成都創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設服務商、專業(yè)的互聯(lián)網(wǎng)服務提供商! 專注于做網(wǎng)站、成都網(wǎng)站制作、軟件開發(fā)、設計服務業(yè)務。我們始終堅持以客戶需求為導向,結(jié)合用戶體驗與視覺傳達,提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領市場!
API里關于該方法的說明
public void setVisible(boolean?b)
根據(jù)參數(shù) b 的值顯示或隱藏此 Window。
窗口的其他常用屬性的設置,詳細見下面的例子
示例圖
參考代碼和詳細的注釋
import?java.awt.Color;
import?java.awt.Font;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
public?class?MyFrame?extends?JFrame?{
//構造函數(shù)
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);?//設置窗口(內(nèi)容面板)的背景顏色
setTitle("窗口示例");//?窗口標題
setSize(300,?200);//?窗口大小?寬300?高200
setLocationRelativeTo(null);//?窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//?當窗口關閉時,程序結(jié)束
}
//main函數(shù)
public?static?void?main(String[]?args)?{
MyFrame?frame?=?new?MyFrame();//?創(chuàng)建窗口
frame.setVisible(true);//?讓該窗口實例可見
}
}
圖片看起來很模糊,隱約看到需要一個登錄窗口,那就分享一下以前練習的登錄窗口demo吧。
先上效果圖:
登錄界面
源碼如下:
AbsoluteLoginFrame.java
public class AbsoluteLoginFrame extends JFrame {
private static final int LOGIN_WIDTH = 600;
private static final int LOGIN_HEIGHT = 400;
private static final long serialVersionUID = -2381351968820980500L;
public AbsoluteLoginFrame(){
? //設置窗口標題
? setTitle("登錄界面");
? //設置一個初始面板,填充整個窗口
? JPanel loginPanel = new JPanel();
? //設置背景顏色
? loginPanel.setBackground(new Color(204, 204, 204));//#CCC
? loginPanel.setLayout(null);
? JPanel centerPanel = new JPanel();
? centerPanel.setBackground(Color.WHITE);
? centerPanel.setBounds(114, 70, 360, 224);
? centerPanel.setLayout(null);
? JLabel jLabel = new JLabel("用戶名:");
? jLabel.setOpaque(true);
? jLabel.setBackground(Color.YELLOW);
? jLabel.setBounds(60, 60, 54, 20);
? JLabel label = new JLabel("密? ? 碼:");
? label.setOpaque(true);
? label.setBackground(Color.CYAN);
? label.setBounds(60, 90, 54, 20);
? JTextField textField = new JTextField(15);
? textField.setBounds(130, 60, 166, 21);
? JPasswordField passwordField = new JPasswordField(15);
? passwordField.setBounds(130, 90, 166, 21);
? JButton jButton = new JButton("登錄");
? jButton.setBounds(148, 120, 62, 28);
? centerPanel.add(jLabel);
? centerPanel.add(label);
? centerPanel.add(textField);
? centerPanel.add(jButton);
? centerPanel.add(passwordField);
? loginPanel.add(centerPanel);
? getContentPane().add(loginPanel);//將初始面板添加到窗口中
? setSize(LOGIN_WIDTH, LOGIN_HEIGHT);//設置窗口大小
? setLocation(Screen.getCenterPosition(LOGIN_WIDTH, LOGIN_HEIGHT));//設置窗口位置
? setDefaultCloseOperation(EXIT_ON_CLOSE);//設置窗口默認關閉方式
? setResizable(false);
? setVisible(true);
}
public static void main(String[] args) {
? new AbsoluteLoginFrame();
}
}
Screen.java
public class Screen {
private int width;
private int height;
public Screen(){
? Toolkit toolkit = Toolkit.getDefaultToolkit();
? Dimension screenSize = toolkit.getScreenSize();
? this.width = screenSize.width;
? this.height = screenSize.height;
}
public static Point getCenterPosition(int width, int height){
? Screen screen = new Screen();
? int x = (screen.getWidth() - width) / 2;
? int y = (screen.getHeight() - height) / 2;
? return new Point(x, y);
}
public int getWidth() {
? return width;
}
public void setWidth(int width) {
? this.width = width;
}
public int getHeight() {
? return height;
}
public void setHeight(int height) {
? this.height = height;
}
}
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);
}
});
}
}
public class ShakeFrame extends JFrame {
private JButton btn = new JButton("Click me!");
public ShakeFrame() {
super("抖動窗口");
this.setSize(300, 200);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
btn.setBounds(10, 10, 100, 30);
this.add(btn);
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x = ShakeFrame.this.getX();
int y = ShakeFrame.this.getY();
for (int i = 0; i 20; i++) {
if ((i 1) == 0) {
x += 3;
y += 3;
} else {
x -= 3;
y -= 3;
}
ShakeFrame.this.setLocation(x, y);
try {
Thread.sleep(50);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
});
}
public static void main(String[] args) {
new ShakeFrame();
}
}
import?java.applet.*;
import?java.awt.Color;
import?java.awt.Frame;
import?javax.swing.JFrame;
import?java.awt.event.*;
public?class?FirstFrame?extends?Frame?{
public?static?void?main(String?args[])?{
FirstFrame?fr?=?new?FirstFrame("First?contianer!");
fr.setSize(240,?240);
//繼承JFrame的關閉窗口代碼
//fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//繼承Frame的
fr.addWindowListener(new?WindowAdapter()?{????
public?void?windowClosing(WindowEvent?e)?{????????
System.exit(0);//退出系統(tǒng)???
}
});
fr.setVisible(true);
}
public?FirstFrame(String?str)?{
super(str);
}
}
一: 首先弄清題目的意思
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種方法可以實現(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");//設置窗口標題
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)建窗口,被設置為可見
}
}
五: 拓展
雖然圖形界面的實現(xiàn)方法是多樣的, ?我們一定要根據(jù)具體情況, 選擇一個比較優(yōu)化的 合理的, 符合業(yè)務邏輯的實現(xiàn)方法
新聞標題:java窗口效果代碼,java窗口界面代碼
當前網(wǎng)址:http://chinadenli.net/article43/dseopes.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、營銷型網(wǎng)站建設、網(wǎng)站維護、建站公司、云服務器、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)