java转成图形界面_【转】java图形界面设计(AWT)
【轉自】http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html
1.???????基本的java Frame操作。
Java的圖形界面的類主要包括AWT和Swing。在AWT中圖形元素的父類為Component。
繼承關系如下:Component->Container->Window->Frame->JFrame。(注意:Swing對AWT進行了擴展)。
下面給出一個簡單的java圖形程序:
package?com.guan.visualTest.frameTest;
import?java.awt.Button;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?javax.swing.JFrame;
public?class?MainFrame {
public?static?void?main(String[] args)
{
//創建frame
JFrame frame =?new?JFrame("welcome!!");
//調整frame的大小和初始位置
frame.setSize(400, 400);
frame.setLocation(100, 100);
//新建5個Button
Button button1 =?new?Button("hello1");
Button button2 =?new?Button("hello2");
Button button3 =?new?Button("hello3");
Button button4 =?new?Button("hello4");
Button button5 =?new?Button("hello5");
//將5個Button添加到frame中
frame.add(button1,"East");
frame.add(button2,"West");
frame.add(button3,"South");
frame.add(button4,"Center");
frame.add(button5,"North");
//增加窗口監聽事件,使用內部類方法,并用監聽器的默認適配器
frame.addWindowListener(new?WindowAdapter(){
//重寫窗口關閉事件
@Override
public?void?windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
//顯示窗體
frame.setVisible(true);
}
}
執行效果:
2.???????AWT的布局管理器
AWT中主要有四種布局管理器:FlowLayout、GridLayout、BorderLayout和CardLayout。
下面給出這四種布局管理器的源碼:
package?com.guan.visualTest.frameTest;
import?java.awt.BorderLayout;
import?java.awt.Button;
import?java.awt.CardLayout;
import?java.awt.FlowLayout;
import?java.awt.Frame;
import?java.awt.GridLayout;
import?java.awt.Panel;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
public?class?YourFrame?extends?Frame{
private?static?final?long?serialVersionUID?= 1L;
Panel?borderLayoutPanel;
Panel?cardLayoutPanel;
Panel?flowLayoutPanel;
Panel?gridLayoutPanel;
private?void?generateGridLayoutPanel() {
gridLayoutPanel?=?new?Panel();
gridLayoutPanel.setLayout(new?GridLayout(2,2));
Button button1 =?new?Button("button1");
Button button2 =?new?Button("button2");
Button button3 =?new?Button("button3");
Button button4 =?new?Button("button4");
gridLayoutPanel.add(button1);
gridLayoutPanel.add(button2);
gridLayoutPanel.add(button3);
gridLayoutPanel.add(button4);
}
private?void?generateFlowLayoutPanel() {
flowLayoutPanel?=?new?Panel();
flowLayoutPanel.setLayout(new?FlowLayout());
Button button1 =?new?Button("button1");
Button button2 =?new?Button("button2");
Button button3 =?new?Button("button3");
Button button4 =?new?Button("button4");
Button button5 =?new?Button("button5");
button1.addActionListener(new?ActionListener() {
@Override
public?void?actionPerformed(ActionEvent e) {
((Button)e.getSource()).setLabel("welcome ");
}
});
flowLayoutPanel.add(button1);
flowLayoutPanel.add(button2);
flowLayoutPanel.add(button3);
flowLayoutPanel.add(button4);
flowLayoutPanel.add(button5);
}
private?void?generateBorderLayoutPanel() {
borderLayoutPanel?=?new?Panel();
borderLayoutPanel.setLayout(new?BorderLayout());
Button button1 =?new?Button("South");
Button button2 =?new?Button("West");
Button button3 =?new?Button("East");
Button button4 =?new?Button("North");
Button button5 =?new?Button("Center");
borderLayoutPanel.add(button1,BorderLayout.SOUTH);
borderLayoutPanel.add(button2,BorderLayout.WEST);
borderLayoutPanel.add(button3,BorderLayout.EAST);
borderLayoutPanel.add(button4,BorderLayout.NORTH);
borderLayoutPanel.add(button5,BorderLayout.CENTER);
}
private?void?genrateCardLayoutPanel() {
cardLayoutPanel?=?new?Panel();
final?CardLayout cl =?new?CardLayout();
cardLayoutPanel.setLayout(cl);
Button button1 =?new?Button("black");
Button button2 =?new?Button("red");
ActionListener al =?new?ActionListener() {
@Override
public?void?actionPerformed(ActionEvent e) {
cl.next(cardLayoutPanel);
}
};
button1.addActionListener(al);
button2.addActionListener(al);
cardLayoutPanel.add(button1,"1");
cardLayoutPanel.add(button2,"2");
}
public?YourFrame(String panelName) {
super("panelName");
generateBorderLayoutPanel();
generateFlowLayoutPanel();
generateGridLayoutPanel();
genrateCardLayoutPanel();
setLayout(new?GridLayout(2,2));
add(borderLayoutPanel);
add(flowLayoutPanel);
add(gridLayoutPanel);
add(cardLayoutPanel);
setSize(800, 800);
setLocation(100,100);
addWindowListener(new?WindowAdapter(){
@Override
public?void?windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
}
public?static?void?main(String[] args) {
YourFrame yourFrame =?new?YourFrame("welcome");
yourFrame.setVisible(true);
}
}
運行結果:
3.???????菜單欄的實現:
菜單欄關鍵的類包括MenuBar、Menu和MenuItem。下面給出測試代碼:
package?com.guan.visualTest.frameTest;
import?java.awt.FileDialog;
import?java.awt.Frame;
import?java.awt.Menu;
import?java.awt.MenuBar;
import?java.awt.MenuItem;
import?java.awt.TextArea;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.IOException;
public?class?MenuFrame {
public?static?void?main(String[] args) {
final?Frame frame =?new?Frame();
frame.setSize(800,800);
frame.setLocation(100,100);
frame.addWindowListener(new?WindowAdapter(){
@Override
public?void?windowClosing(WindowEvent e) {
System.exit(0);
}
});
final?TextArea ta =?new?TextArea();
frame.add(ta);
//創建菜單欄
MenuBar mb =?new?MenuBar();
//創建菜單
Menu file =?new?Menu("File");
Menu edit =?new?Menu("Edit");
//創建菜單項
MenuItem mi1 =?new?MenuItem("Open");
//添加打開文件功能響應
mi1.addActionListener(new?ActionListener() {
@Override
public?void?actionPerformed(ActionEvent e) {
FileDialog fd =?new?FileDialog(frame,"打開文件",FileDialog.LOAD);
fd.setVisible(true);
String fileName = fd.getDirectory()+fd.getFile();
if(fileName !=?null)
{
try?{
FileInputStream fis =?new?FileInputStream(fileName);
byte[] buf =?new?byte[10*1024];
try?{
int?len = fis.read(buf);
ta.append(new?String(buf,0,len));
fis.close();
}?catch?(IOException e1) {
e1.printStackTrace();
}
}?catch?(FileNotFoundException e1) {
e1.printStackTrace();
}
}
}
});
MenuItem mi2 =?new?MenuItem("Save");
MenuItem mi3 =?new?MenuItem("Other Save");
MenuItem mi4 =?new?MenuItem("Close");
//添加?關閉響應
mi4.addActionListener(new?ActionListener() {
@Override
public?void?actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
MenuItem mi5 =?new?MenuItem("Cope");
MenuItem mi6 =?new?MenuItem("Paste");
file.add(mi1);
file.add(mi2);
file.add(mi3);
file.add(mi4);
edit.add(mi5);
edit.add(mi6);
mb.add(file);
mb.add(edit);
frame.setMenuBar(mb);
frame.setVisible(true);
}
}
執行結果:
4.???????最后Swing的簡單測試
package?com.guan.visualTest.frameTest;
import?java.awt.BorderLayout;
import?javax.swing.JButton;
import?javax.swing.JFrame;
public?class?SwingFrame?{
public?static?void?main(String[] args) {
JFrame frame =?new?JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button =?new?JButton("ok");
frame.getContentPane().add(button,BorderLayout.WEST);
frame.setSize(800,800);
frame.setLocation(100, 100);
frame.setVisible(true);
}
}
原文:http://www.cnblogs.com/zhzhang/p/5720116.html
總結
以上是生活随笔為你收集整理的java转成图形界面_【转】java图形界面设计(AWT)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喉咙痛吃了二十天消炎药不管用怎么办
- 下一篇: 喉咙有压迫感是甲状腺吗