我是一只小菜鸟,但我不相信那句“怎么飞也飞不高”,每天坚持飞的更高一点,哪怕是1mm,但总有一天我将鸟瞰蓝色星球的全貌。
从现在开始,不要问从哪里开始,怎么开始,现在就开始!GO!
图形化总是让人与计算机更亲近,就先从Swing始吧!
先熟习下一些常用的构件
//swing学习专用@菜鸟级
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame{
private JButton ok, cancel;
private JLabel firstlabel,secondlabel;
private JTextField firstTextF;
private JTextArea firstTextA,secondTextA;
private JMenu myFile,myEdit;
public MyFrame(){
//Container继承自Component,getContentPane()功能是得到窗体最下面的面板
Container contentPane = getContentPane();
//设置窗体标题
setTitle("晓熙风");
//设置窗体长和宽
setSize(800,500);
//设置窗体出现的位置,(0,0)为左上角
setLocation(0,0);
//setLayout(null)方法后就可以用setBounds()方法来设定JBbutton在窗体中的绝对位置(窗体拉大,JBbutton的位置在窗体中的位置不变)
contentPane.setLayout(null);
//设置面板的背景颜色,可以直接选颜色,也可以new一个Color对象
//contentPane.setBackground(Color.red);
contentPane.setBackground(new Color(0.5F,0.5F,0.5F));
//创建新的按钮
ok = new JButton("OK");
cancel = new JButton("CANCEL");
//设置按钮位置和大小
ok.setBounds(50,400,80,30);
cancel.setBounds(670,400,80,30);
//创建新的标签,可以与HTML合用生成不同颜色和字体的标签,下面是绿色斜体,标签还可以加入图片
firstlabel = new JLabel("<html><font color = green><i>I am the first label created by xiaoxifeng:</i></font></html>");
ImageIcon firsticon = new ImageIcon("qq.jpg","first icon");
secondlabel = new JLabel("The second label with image:",firsticon,JLabel.LEFT);
//设置标签的位置和大小
firstlabel.setBounds(50,20,250,20);
secondlabel.setBounds(50,40,250,40);
//创建新的文本域,文本域只有一行
firstTextF = new JTextField("在这里输入文字",500);
//设置文本域位置和大小
firstTextF.setBounds(50,80,250,20);
//创建新的文本框,本文框可以设置多行
firstTextA = new JTextArea("这是个文本框",5,500);
secondTextA = new JTextArea("有滚动条的文本框");
//设置位置和大小
firstTextA.setBounds(50,110,250,100);
//创建一个滚动条区域,将一个文本框包含进去
JScrollPane firstJSP = new JScrollPane(secondTextA);
//设置位置和大小
firstJSP.setBounds(50,220,250,100);
//创建新的菜单
myEdit = new JMenu("Edit");
createFile();
JMenuBar myMenuBar = new JMenuBar();
setJMenuBar(myMenuBar);
myMenuBar.add(myFile);
myMenuBar.add(myEdit);
//给按钮添加事件侦听
ok.addActionListener(new Button_ActionListener());
cancel.addActionListener(new Button_ActionListener());
//给窗体增加小组件
contentPane.add(ok);
contentPane.add(cancel);
contentPane.add(firstlabel);
contentPane.add(secondlabel);
contentPane.add(firstTextF);
contentPane.add(firstTextA);
contentPane.add(firstJSP);
//setDefaultCloseOperation设定程序的关闭操作,JFrame.EXIT_ON_CLOSE为常数,表示窗口关闭时程序结束
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
MyFrame myframe = new MyFrame();
//ture为可见,false为不可见
myframe.setVisible(true);
}
//创建菜单和子目录
private void createFile(){
JMenuItem myItem;
myFile = new JMenu("File");
myItem = new JMenuItem("New");
myFile.add(myItem);
myItem = new JMenuItem("Open");
myFile.add(myItem);
myItem = new JMenuItem("Save");
myFile.add(myItem);
myItem = new JMenuItem("Save as");
myFile.add(myItem);
}
}
class Button_ActionListener implements ActionListener{
//actionPerformed()发现对象时调用
public void actionPerformed(ActionEvent e){
//捕捉事件对象getSource()
JButton JB = (JButton)e.getSource();
//通过getRootPane()找到root pane
JRootPane rootPane = JB.getRootPane();
//通过getParent找到root pane的parent,也就是Frame
Frame listenFrame = (JFrame)rootPane.getParent();
String text = JB.getText();
listenFrame.setTitle("你按了:"+text);
}
}
唉,论坛不支持图片,效果转至相册