菜鸟起航

我是一只小菜鸟,但我不相信那句“怎么飞也飞不高”,每天坚持飞的更高一点,哪怕是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);
    }
}

 

唉,论坛不支持图片,效果转至相册

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值