怎样用java编写图形界面的Application程序?

Python014

怎样用java编写图形界面的Application程序?,第1张

java编写图形界面需要用到swing等组件,可以在eclipse中安装windowbuilder来开发窗体,自动生成窗体代码,然后自己再根据需要修改,如:

package mainFrame

import java.awt.EventQueue

import java.awt.event.MouseAdapter

import java.awt.event.MouseEvent

import javax.swing.ImageIcon

import javax.swing.JButton

import javax.swing.JCheckBox

import javax.swing.JFrame。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

java图形化界面还是有很多内容要学习的,可以参考 如下实例:

public class Test extends JFrame{

MyPanel mp=null

public static void main(String[] args){

// TODO Auto-generated method stub

Test jf= new Test()

}

public Test(){

mp=new MyPanel()

this.add(mp)

//设置标题

this.setTitle("绘图")

//设置窗体大小

this.setSize(400, 300)

//设置窗体的位置

this.setLocation(100,100)

//限制窗体的大小

this.setResizable(false)

//关闭窗体时,同时退出java虚拟机

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

//显示窗体

this.setVisible(true)

}

}

//定义一个MyPanel(我自己的面板,用于绘图和实现绘图区域)

class MyPanel extends JPanel

{

//覆盖JPanel的paint方法

//Graphics是绘图的重要类,可以把它理解成一只画笔

public void paint(Graphics g)

{

//1。调用父类函数完成初始化

super.paint(g)

// //画圆

// g.drawOval(100, 100, 20, 20)

// //画直线

// g.drawLine(50, 150,150, 200)

// //画矩形边框

// g.drawRect(150, 150, 30, 40)

//

// //设置颜色。默认为黑色

// g.setColor(Color.blue)

// //填充矩形

// g.fillRect(10, 10, 20, 30)

//画弧形

g.drawArc(200,10, 100,150, 120,-80)

//在面板上画图片

Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("图片路径"))

//显示图片

g.drawImage(im, 10, 10,200,180,this)

//画字

g.setColor(Color.red)

g.setFont(new Font("华文彩云",Font.BOLD,20))

g.drawString("要写的字", 80,220)

}

}

运行如图

参考代码如下

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class RegDemo extends JFrame implements ActionListener{

JTextField jtf

JPasswordField jpf

public RegDemo() {

        //组件的创建, 和布局安排

JPanel jpc = new JPanel()//默认流式布局

JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10))//网格布局

jp1.setBorder(BorderFactory.createTitledBorder("用户注册"))

JLabel jl1 = new JLabel("用户名:")

jtf = new JTextField(10)

JLabel jl2 = new JLabel("密码:")

jpf = new JPasswordField(10)

                jpf.setEchoChar('*')//用*号来隐藏密码的显示

jp1.add(jl1)jp1.add(jtf)

jp1.add(jl2)jp1.add(jpf)

jpc.add(jp1)

add(jpc)

JButton jb1 = new JButton("提交")

jb1.addActionListener(this)

jb1.setActionCommand("yes")

JButton jb2 = new JButton("取消")

jb2.addActionListener(this)

jb2.setActionCommand("no")

JPanel jp2 = new JPanel()

jp2.add(jb1)jp2.add(jb2)

add(jp2,BorderLayout.SOUTH)

setTitle("用户注册界面")

        setSize(280, 280)

        setLocationRelativeTo(null)//窗口居中

        setDefaultCloseOperation(EXIT_ON_CLOSE)//

        setVisible(true)

}

public static void main(String[] args) {

new RegDemo()

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals("yes")){

String name  = jtf.getText().trim()

String pwd = new String(jpf.getPassword())

if(name.equals("")||pwd.equals("")){

JOptionPane.showMessageDialog(this, "你还没有输入用户名或者密码")

}else{

JOptionPane.showMessageDialog(this, "注册成功!用户名"+name+",密码"+pwd)

}

}else{

jtf.setText("")

jpf.setText("")

}

}

}