99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

java播放界面設(shè)計代碼 java播放界面設(shè)計代碼怎么用

Java 用戶界面設(shè)計 求界面代碼

一: 首先弄清題目的意思

創(chuàng)新互聯(lián)建站是一家專業(yè)提供仁布企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計、html5、小程序制作等業(yè)務(wù)。10年已為仁布眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

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)方法

用JAVA在界面中實現(xiàn)幻燈片播放,求代碼

要讓照片隨機播放,需要把照片名改成比如photo1.jpg,photo2.jpg,photo3.jpg...的有序號順序排列的文件名,

然后把改名后的照片文件放到你的項目名的目錄下,比如你的項目名叫"slideshow",你就把照片文件放到slideshow文件夾下.

最后把下面的Java程序拷貝到你的項目中,把有DD類名的地方改成你的類名,就行了.

完整的讓一些照片在JFrame窗體里自動隨機播放的幻燈片程序如下

(我用的圖片文件是photo1.jpg,photo2.jpg,photo3.jpg,注意事項在注釋中注明

import java.awt.Graphics;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class DD extends JFrame implements Runnable{

ImageIcon ii=new ImageIcon("photo1.jpg");//這里換成你的圖片文件名,放在你的項目名的文件夾中

DD(){

super("Slide");

setSize(400, 400);

setLocationRelativeTo(null);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

public void paint(Graphics g){

super.paint(g);

g.drawImage(ii.getImage(),0,0,400,400,null);

}

@Override

public void run() {

while(true){

try {

Thread.sleep(500);//這里是幻燈片播放間隔的時間,這里為500毫秒=0.5秒

} catch (InterruptedException e) {

e.printStackTrace();

}

int i=(int)(Math.random()*3)+1;//這里是產(chǎn)生從1-3的隨機數(shù),如果你有6個圖片文件,把3改成6就是從1-6的隨機數(shù)了.

ii=new ImageIcon("photo"+i+".jpg");//這里調(diào)用你的圖片文件,如果你有6個圖片文件,改成從1-6的文件名方便調(diào)用

this.repaint();

}

}

public static void main(String[] args) {

DD d=new DD();

Thread t=new Thread(d);

t.start();

}

}

求JAVA視頻播放器代碼

import java.awt.BorderLayout;

import java.awt.Component;

import java.awt.FileDialog;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.media.ControllerClosedEvent;

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.NoPlayerException;

import javax.media.Player;

import javax.media.PrefetchCompleteEvent;

import javax.media.RealizeCompleteEvent;

import javax.media.Time;

import javax.swing.JCheckBoxMenuItem;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

public class JMFMediaPlayer extends JFrame implements ActionListener,

ControllerListener, ItemListener {

// JMF的播放器

Player player;

// 播放器的視頻組件和控制組件

Component vedioComponent;

Component controlComponent;

// 標(biāo)示是否是第一次打開播放器

boolean first = true;

// 標(biāo)示是否需要循環(huán)

boolean loop = false;

// 文件當(dāng)前目錄

String currentDirectory;

// 構(gòu)造方法

public JMFMediaPlayer(String title) {

super(title);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

// 用戶點擊窗口系統(tǒng)菜單的關(guān)閉按鈕

// 調(diào)用dispose以執(zhí)行windowClosed

dispose();

}

public void windowClosed(WindowEvent e){

if (player != null){

// 關(guān)閉JMF播放器對象

player.close();

}

System.exit(0);

}

});

// 創(chuàng)建播放器的菜單

JMenu fileMenu = new JMenu("文件");

JMenuItem openMemuItem = new JMenuItem("打開");

openMemuItem.addActionListener(this);

fileMenu.add(openMemuItem);

// 添加一個分割條

fileMenu.addSeparator();

// 創(chuàng)建一個復(fù)選框菜單項

JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循環(huán)", false);

loopMenuItem.addItemListener(this);

fileMenu.add(loopMenuItem);

fileMenu.addSeparator();

JMenuItem exitMemuItem = new JMenuItem("退出");

exitMemuItem.addActionListener(this);

fileMenu.add(exitMemuItem);

JMenuBar menuBar = new JMenuBar();

menuBar.add(fileMenu);

this.setJMenuBar(menuBar);

this.setSize(200, 200);

try {

// 設(shè)置界面的外觀,為系統(tǒng)外觀

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

SwingUtilities.updateComponentTreeUI(this);

} catch (Exception e) {

e.printStackTrace();

}

this.setVisible(true);

}

/**

* 實現(xiàn)了ActionListener接口,處理組件的活動事件

*/

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("退出")) {

// 調(diào)用dispose以便執(zhí)行windowClosed

dispose();

return;

}

FileDialog fileDialog = new FileDialog(this, "打開媒體文件", FileDialog.LOAD);

fileDialog.setDirectory(currentDirectory);

fileDialog.setVisible(true);

// 如果用戶放棄選擇文件,則返回

if (fileDialog.getFile() == null){

return;

}

currentDirectory = fileDialog.getDirectory();

if (player != null){

// 關(guān)閉已經(jīng)存在JMF播放器對象

player.close();

}

try {

// 創(chuàng)建一個打開選擇文件的播放器

player = Manager.createPlayer(new MediaLocator("file:"

+ fileDialog.getDirectory() + fileDialog.getFile()));

} catch (java.io.IOException e2) {

System.out.println(e2);

return;

} catch (NoPlayerException e2) {

System.out.println("不能找到播放器.");

return;

}

if (player == null) {

System.out.println("無法創(chuàng)建播放器.");

return;

}

first = false;

this.setTitle(fileDialog.getFile());

// 播放器的控制事件處理

player.addControllerListener(this);

// 預(yù)讀文件內(nèi)容

player.prefetch();

}

/**

* 實現(xiàn)ControllerListener接口的方法,處理播放器的控制事件

*/

public void controllerUpdate(ControllerEvent e) {

// 調(diào)用player.close()時ControllerClosedEvent事件出現(xiàn)。

// 如果存在視覺部件,則該部件應(yīng)該拆除(為一致起見,

// 我們對控制面板部件也執(zhí)行同樣的操作)

if (e instanceof ControllerClosedEvent) {

if (vedioComponent != null) {

this.getContentPane().remove(vedioComponent);

this.vedioComponent = null;

}

if (controlComponent != null) {

this.getContentPane().remove(controlComponent);

this.controlComponent = null;

}

return;

}

// 如果是媒體文件到達尾部事件

if (e instanceof EndOfMediaEvent) {

if (loop) {

// 如果允許循環(huán),則重新開始播放

player.setMediaTime(new Time(0));

player.start();

}

return;

}

// 如果是播放器預(yù)讀事件

if (e instanceof PrefetchCompleteEvent) {

// 啟動播放器

player.start();

return;

}

// 如果是文件打開完全事件,則顯示視頻組件和控制器組件

if (e instanceof RealizeCompleteEvent) {

vedioComponent = player.getVisualComponent();

if (vedioComponent != null){

this.getContentPane().add(vedioComponent);

}

controlComponent = player.getControlPanelComponent();

if (controlComponent != null){

this.getContentPane().add(controlComponent, BorderLayout.SOUTH);

}

this.pack();

}

}

// 處理“循環(huán)”復(fù)選框菜單項的點擊事件

public void itemStateChanged(ItemEvent e) {

loop = !loop;

}

public static void main(String[] args){

new JMFMediaPlayer("JMF媒體播放器");

}

}

試試吧,我這里運行正常

java swing界面設(shè)計

GUI圖形界面設(shè)計的重點是布局

SWING也是采用AWT的布局方式,進行布局管理的。(實現(xiàn)LayoutManager接口的方法,來進行管理布局,API中已有實現(xiàn)類,我們通常只需要指定實現(xiàn)類,而不需要自己重寫方法)

常用的布局有絕對布局, 邊界布局BorderLayout,流布局FlowLayout,表格布局GridLayout。

JFrame等重量級組件,默認布局是邊界布局,JPanel輕量級組件,默認布局是流布局

絕對布局:布局的特點,需要指定每個組件的大小,和具體位置。

優(yōu)點:充分的自定義,充分的自由,可以寫出漂亮的 ,細致的界面

缺點:絕對布局在不同的操作系統(tǒng)下,會有一些不同程度的變化,導(dǎo)致界面變形,甚至組件重疊等。在同一操作系統(tǒng)下,窗口放大縮小,界面也會變形

絕對布局的范例

import?javax.swing.JButton;

import?javax.swing.JFrame;

public?class?Frame1?extends?JFrame{

JButton?jb1;

public?Frame1()?{

setLayout(null);//指定窗口的布局管理器為空,也就是絕對布局

jb1?=?new?JButton("按鈕");

jb1.setLocation(100,?50);//指定組件的位置

jb1.setSize(80,?30);//指定組件的大小

//jb1.setBounds(100,?50,?80,?30);//上面兩句代碼等同于這句代碼

add(jb1);

setSize(300,?200);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public?static?void?main(String[]?args)?{

new?Frame1().setVisible(true);

}

}

邊界布局BorderLayout:它可以對容器組件進行安排,并調(diào)整其大小,使其符合下列五個區(qū)域:北、南、東、西、中。每個區(qū)域最多只能包含一個組件

優(yōu)點:比較常用的布局,簡單易掌握,放大縮小,不影響組件的位置

缺點:組件位置不夠靈活。每個區(qū)域如果添加多個組件,那么后面的組件會覆蓋前面的組件。(因為可以嵌套其他組件使用,所以這些缺點基本都能克服)

3. ? 代碼參考

import?javax.swing.*;

import?java.awt.*;

public?class?P004_BorderLayout?{

JFrame?jframe;

JButton?jb1,jb2,jb3,jb4,jb5;

public?P004_BorderLayout(){

jframe?=?new?JFrame();

jframe.setTitle("邊界布局");

jframe.setBounds(300,?200,?180,?180);

jb1?=?new?JButton("東");

jframe.add(jb1,?BorderLayout.EAST);

jb2?=?new?JButton("西");

jframe.add(jb2,BorderLayout.WEST);

jb3?=?new?JButton("南");

jframe.add(jb3,BorderLayout.SOUTH);

jb4?=?new?JButton("北");

jframe.add(jb4,BorderLayout.NORTH);

jb5?=?new?JButton("中");

jframe.add(jb5);//BorderLayout.CENTER可以省略

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P004_BorderLayout();

}

}

流布局FlowLayout:像一排文字一個挨著一個的布局。流布局用于安排有向流中的組件,這非常類似于段落中的文本行。流的方向可以指定。

優(yōu)點:可以快速添加組件,不用指定位置,也不用指定邊界

缺點:線性排列 ,外觀單調(diào)。(嵌套其他布局,可以忽略缺點)

代碼參考

import?java.awt.FlowLayout;

import?javax.swing.*;

public?class?P003_FlowLayout?{

JFrame?jframe;

public?P003_FlowLayout(){

jframe?=?new?JFrame("流式布局");

for?(int?i?=?1;?i?=?5;?i++)?{

jframe.add(new?JButton(i+""));

}

jframe.setLocation(380,?260);

jframe.setLayout(new?FlowLayout(FlowLayout.LEFT));//窗口指定位流式布局,方向從左往右

jframe.pack();

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P003_FlowLayout();

}

}

表格布局GridLayout:它以矩形網(wǎng)格形式對容器的組件進行布置。容器被分成大小相等的矩形,一個矩形中放置一個組件。

優(yōu)點:組件整齊排列,

缺點:如果添加的組件數(shù)量,和指定的數(shù)量不一致,容易導(dǎo)致缺失等

參考代碼

import?javax.swing.*;

import?java.awt.*;

public?class?P005_GridLayout?{

JFrame?jframe;

public?P005_GridLayout()?{

jframe?=?new?JFrame("表格布局");

jframe.setLayout(new?GridLayout(3,?4));//表格布局,3行?4列

for?(int?i?=?0;?i?=?12;?i++)?{

jframe.add(new?JButton(i+""));

}

jframe.setLocation(300,?200);

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.pack();

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P005_GridLayout();

}

}

最后: 布局是一種靈活的東西。你可以一個布局里嵌套另外一個布局。

比如邊界布局的窗口的中間,加入按表格布局的組件,表格布局里面是流式布局。

很多的復(fù)雜的界面,通過細分,都能拆分成常用布局的嵌套

本文名稱:java播放界面設(shè)計代碼 java播放界面設(shè)計代碼怎么用
標(biāo)題URL:http://www.yijiale78.com/article16/docjidg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作App設(shè)計網(wǎng)站制作、品牌網(wǎng)站設(shè)計、電子商務(wù)、企業(yè)建站

廣告

聲明:本網(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)

h5響應(yīng)式網(wǎng)站建設(shè)