跟我学Java入门到精通培训教程——自定义GUI 界面类型的JavaBean组件实例(第1部分)
跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第4部分)
1.1JavaBean组件编程技术及应用实例(第4部分)10、为Bean增加BeanInfo类(为Bean提供显式的信息如Bean在应用程序构造器中的属性、图标、事件的名称等)(1)方式一:在应用程序构造器中曝露所有的属性、事件、方法等信息。
import java.beans.*;import java.awt.*;public class JavaBeanButtonBeanInfo extends SimpleBeanInfo{/*以下代码为JavaBean提供16*16和32*32的图标*/public Image getIcon(int iconKind){if(iconKind==BeanInfo.ICON_COLOR_16x16){Image img=this.loadImage("BeanIconColor16.gif");return img;}if(iconKind==BeanInfo.ICON_COLOR_32x32){Image img=this.loadImage("BeanIconColor32.gif");return img;}return null;}/*以下代码位JavaeBean提供在应用程序的构造工具中的显示名称字串*/private final static Class beanClass=JavaBeanButton.class;public BeanDescriptor getBeanDescriptor() {BeanDescriptor bd=new BeanDescriptor(JavaBeanButton.class); //采用缺省的定制文件创建Bean的描述信息bd.setDisplayName("JavaBeanButton"); //在应用程序的构造工具中的显示名称字串return bd;}/*以下代码显式地声明属性*/public PropertyDescriptor[] getPropertyDescriptors(){try{PropertyDescriptor foreground=new PropertyDescriptor("foreground",JavaBeanButton.class),background=new PropertyDescriptor("background",JavaBeanButton.class),font=new PropertyDescriptor("font",JavaBeanButton.class),name=new PropertyDescriptor("name",JavaBeanButton.class),/*以上为继承来的属性*//*以下为程序中所新增加的属性*/label=new PropertyDescriptor("label",JavaBeanButton.class),down=new PropertyDescriptor("down",JavaBeanButton.class),hasFocus=new PropertyDescriptor("hasFocus",JavaBeanButton.class),backgroundColor=new PropertyDescriptor("backgroundColor",JavaBeanButton.class),foregroundColor=new PropertyDescriptor("foregroundColor",JavaBeanButton.class); /*可以根据应用的需要,将某些属性在应用程序的构造工具中隐藏起来*/font.setHidden(true);PropertyDescriptor[] pd={foreground, background,font,name,label,down,hasFocus,backgroundColor, foregroundColor};return pd;}catch(IntrospectionException e){throw new Error(e.toString());}}public int getDefaultPropertyIndex(){return 5; //将label作为缺省的属性}//以下代码通过实现getEventSetDescriptors()方法来为Bean显式地注册事件接口public EventSetDescriptor[] getEventSetDescriptors(){EventSetDescriptorchanged=null,action=null,focusGained=null,focusLosted=null,mouseReleased=null,mousePressed= null,mouseEntered=null,mouseExited=null,mouseClicked=null;try{changed=new EventSetDescriptor(JavaBeanButton.class,"propertyChange",java.beans.PropertyChangeListener.class,"propertyChange");changed.setDisplayName("JavaBeanButton propertyChange Event");action=new EventSetDescriptor(JavaBeanButton.class,"actionPerformed",java.awt.event.ActionListener.class,"actionPerformed");action.setDisplayName("JavaBeanButton actionPerformed Event");focusGained=new EventSetDescriptor(JavaBeanButton.class,"focusGained",java.awt.event.FocusListener.class,"focusGained");focusGained.setDisplayName("JavaBeanButton Focus Gained Event");focusLosted=new EventSetDescriptor(JavaBeanButton.class,"focusLost",java.awt.event.FocusListener.class,"focusLost");focusLosted.setDisplayName("JavaBeanButton Focus Losted Event");mousePressed=new EventSetDescriptor(JavaBeanButton.class,"mousePressed",java.awt.event.MouseListener.class,"mousePressed");mousePressed.setDisplayName("JavaBeanButton Mouse Pressed Event");mouseReleased=new EventSetDescriptor(JavaBeanButton.class,"mouseReleased",java.awt.event.MouseListener.class,"mouseReleased");mouseReleased.setDisplayName("JavaBeanButton Mouse Released Event");mouseEntered=new EventSetDescriptor(JavaBeanButton.class,"mouseEntered",java.awt.event.MouseListener.class,"mouseEntered");mouseEntered.setDisplayName("JavaBeanButton Mouse Enter Event");mouseExited=new EventSetDescriptor(JavaBeanButton.class,"mouseExited",java.awt.event.MouseListener.class,"mouseExited");mouseExited.setDisplayName("JavaBeanButton Mouse Exit Event");mouseClicked=new EventSetDescriptor(JavaBeanButton.class,"mouseClicked",java.awt.event.MouseListener.class,"mouseClicked");mouseClicked.setDisplayName("JavaBeanButton Mouse Click Event");}catch(IntrospectionException e){}EventSetDescriptor name[]={changed,action,focusGained,focusLosted,mouseReleased,mousePressed,mouseEntered,mouseExited,mouseClicked};return name;}}注意要点:(1)由于此时包含有JavaBeanButtonBeanInfo类及图标的图像文件,因此在形成*.jar文件时,应采用如下的命令行方式:jar cfm JavaBeanButton.jar JavaBeanManifest.txt JavaBeanButton.classJavaBeanButtonBeanInfo.class BeanIconColor16.gif BeanIconColor32.gif(2)Bean的源程序代码与测试容器程序的代码不变(3)在Beanbox测试容器中的自检状态信息如图示:在BeanBox中查看Bean 中的方法(如果在run.bat文件中加入java sun.beanbox.BeanBoxFrame > beanreport.txt,此时将在标准输出中的显示信息重定向到beanreport.txt文件中。
JavaGUI编程创建漂亮的用户界面
JavaGUI编程创建漂亮的用户界面JavaGUI编程是一种强大的工具,它可以帮助开发者创建漂亮、直观的用户界面。
在本文中,我将为您介绍如何使用JavaGUI编程来设计和实现一个令人印象深刻的用户界面。
一、选择合适的图形库在开始编写JavaGUI程序之前,我们需要选择一个合适的图形库。
Java提供了多种图形库选项,包括Swing、JavaFX等。
在这里,我将以Swing为例进行演示。
二、设计用户界面设计用户界面是实现漂亮用户界面的第一步。
在设计过程中,我们应该考虑到用户的需求和使用习惯,使界面具有良好的可用性和可访问性。
以下是一些设计原则可以帮助您创建漂亮的用户界面:1. 简洁明了:界面应该简洁明了,避免过多的干扰元素和复杂的图形。
2. 色彩搭配:选择适合的颜色搭配,使界面看起来舒适和谐。
同时要注意颜色的对比度,以确保文字和界面元素的可读性。
3. 布局:合理的布局可以使界面更加整洁美观。
可以使用不同的布局管理器(如FlowLayout、GridBagLayout等)来帮助您实现布局。
4. 图标和图片:适当使用图标和图片可以增加界面的吸引力。
选择高质量的图标和图片,确保其分辨率和大小适合当前界面的需求。
5. 文字字体:选择易读的字体和合适的字号。
正文通常使用宋体、微软雅黑等,标题可以选择一些特殊的字体以增加视觉效果。
三、编写代码一旦您完成了用户界面的设计,接下来就是编写代码来实现这个界面。
下面是一个简单的示例,展示如何使用Swing来创建一个基本的用户界面。
```javaimport javax.swing.*;import java.awt.*;public class GUIExample {public static void main(String[] args) {JFrame frame = new JFrame("漂亮的用户界面");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JPanel panel = new JPanel();panel.setLayout(new FlowLayout());JLabel label = new JLabel("欢迎使用漂亮的用户界面!");label.setFont(new Font("宋体", Font.BOLD, 18));JButton button = new JButton("点击我");button.setPreferredSize(new Dimension(100, 50));panel.add(label);panel.add(button);frame.getContentPane().add(panel);frame.setVisible(true);}}```上述代码演示了如何创建一个简单的用户界面,其中包括一个标签和一个按钮。
javabean知识点总结
javabean知识点总结JavaBean 是一种特殊的 Java 类,它遵循一些特定的设计规范,主要用于在 Java 应用程序中进行数据封装和传输。
以下是 JavaBean 知识点的总结:1. 属性:- JavaBean 通常具有私有属性,用于存储数据。
- 属性可以通过getter 和 setter 方法进行访问和修改,以保证数据的封装和安全性。
2. 构造方法:- JavaBean 可以具有一个无参构造方法,以便在创建对象时进行初始化。
3. getter 和 setter 方法:- getter 方法用于获取属性的值,通常以"get"为方法名前缀。
- setter 方法用于设置属性的值,通常以"set"为方法名前缀。
- getter 和 setter 方法应该遵循一定的命名规范,例如属性名的首字母小写,后面紧跟"get"或"set"。
4. 序列化:- JavaBean 应该实现`Serializable`接口,以便在序列化和反序列化过程中保持对象的状态。
5. 重载:- JavaBean 中的方法可以进行重载,以提供不同的实现。
6. 事件监听器:- JavaBean 可以使用事件监听器机制来响应外部事件,如按钮点击事件。
7. 自省:- JavaBean 提供了自省功能,通过反射机制可以获取和设置属性的值,以及调用方法。
8. 数据类型:- JavaBean 的属性可以是基本数据类型、对象类型或集合类型。
9. 命名规范:- JavaBean 的类名、属性名和方法名应该遵循一定的命名规范,以提高可读性和可维护性。
10. 可读性和可维护性:- JavaBean 应该注重代码的可读性和可维护性,合理组织类结构和方法。
以上是 JavaBean 知识点的一些总结,JavaBean 在 Java 开发中广泛应用于数据的封装和传输,是构建复杂应用程序的基础。
跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第5部分)
1.1跟我学Java入门到精通培训教程——第8章利用JBuilder开发各种Java应用程序(第5部分)1.1.1在JBuilder中测试JavaBean组件1、将JavaBean组件的*.jar包文件放入到JBuilder的库环境中(1)选择Tools—Configure Libraries在对话框中添加所开发的*.jar包文件2、将所开发的JavaBean组件添加到JBuilder的工具箱中(1)右击JBuilder的某个工具箱的页面(2)指定某个工具页的名称(3)在该工具页中添加所开发的组件找到所开发的组件类3、在应用程序中使用它(1)添加该组件到应用系统中方法同其它标准的AWT和Swing 种的组件相同。
(2)也可以可视化地改变其属性(3)JBuilder将帮助我们产生代码4、在JBuilder中测试JavaBean的自检功能5、在JBuilder中测试定制序列化1.1.2利用JBuilder产生国际化的程序1、工具主要可以利用Resource Strings wizard和Localizable Property Setting对话框两种形式来实现。
2、使用Resource Strings wizard(1)选择Wizards菜单中的“Resource Strings”(2)缺省时为ListResourceBundles(本例采用继承ListResourceBundles类以编程的方式来产生资源包所在的类),如果要求创建出PropertyResourceBundles,则选择New按钮。
并且选择是为当前程序还是整个包进行资源化。
(3)在此对话框内,主要是选择资源字符串的命名方式。
(4)列出所有的资源字符串,并且按下finish按钮(5)JBuilder将在项目中自动产生一个ListResourceBundles的子类文件,并且以“名称”和“值”的方式列出(以后可以针对不同的语言系统,只要改变某一名称所对应的显示文字类型即可)(6)JBuilder将自动地将项目中的所有程序中涉及字符串的代码改变为如下方式3、Localizable Property Setting对话框方法(1)在某个组件的属性面板,右击该组件的Text或者Title属性项目(2)命名该属性在资源字符串文件中的key名称杨教授工作室精心创作的优秀程序员职业提升必读系列资料1.2跟我学Java入门到精通培训教程——第9章项目开发实训在讲课过程中贯穿案例,如利用JBuilder实现Java 应用程序项目的开发,主要涉及Swing GUI、数据库、JavaBean和国际化等方面的编程应用。
Java中的GUI界面设计和事件处理入门
Java中的GUI界面设计和事件处理入门一、引言Java是一种面向对象的编程语言,具有广泛的应用领域。
在软件开发过程中,GUI界面设计和事件处理是非常重要的一部分。
本文将介绍Java中的GUI界面设计和事件处理的入门知识,以帮助读者了解和掌握这方面的技术。
二、GUI界面设计基础GUI(Graphical User Interface,图形用户界面)是指通过图形、图像和动画等方式来显示信息,提供用户与计算机之间的交互。
在Java中,可以使用Swing和JavaFX等库来进行GUI界面设计。
1. 布局管理器在GUI界面设计中,布局管理器用于管理组件的布局方式。
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等。
使用不同的布局管理器可以实现不同的界面布局效果。
2. 组件组件是GUI界面的基本元素,可以是按钮、文本框、标签、列表框等。
在Java中,可以使用JButton、JTextField、JLabel和JList等类来创建各种组件。
可以设置组件的属性,如大小、位置和样式等。
3. 事件监听器事件监听器用于捕捉用户操作产生的事件,并做出相应的处理。
在Java中,可以使用addActionListener()方法为组件添加监听器,响应用户的点击事件。
事件监听器可以以匿名内部类的形式实现,也可以作为单独的类来处理。
三、GUI界面设计实例下面以一个简单的登录界面为例,介绍如何使用Java中的GUI 界面设计来创建一个具有交互功能的窗体。
1. 导入必要的类库首先需要导入javax.swing和java.awt等类库,以便使用其中的类和方法。
2. 创建窗体可以通过继承JFrame类来创建一个窗体对象,然后设置窗体的标题、大小和关闭方式等属性。
3. 添加组件可以使用JLabel、JTextField和JButton等组件类来创建对应的界面元素,并设置它们的属性和布局。
JavaBean保姆级教程
JavaBean保姆级教程文章目录••oo••ooo▪▪▪▪▪••oo就离谱,居然少整理了javabean,话不多说,接着进行保姆级教学。
首先1. 什么是JavaBeanJavaBean 是一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。
JavaBean可分为两种:•一种是有用户界面(UI,User Interface)的JavaBean;•还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。
JSP通常访问的是后一种JavaBean,我们下面说的都是第二种Javabean。
注意:1.JavaBean类需要是public,这样外部才能够访问2.JavaBean类中的属性都需要进行封装,也就是将属性设置为private3.如果封装的属性需要被外部操作,则需要写setter和getter方法JavaBean类举例:public class FirstBean {private String name;private int age;public void setName(String name) { = name;}public void setAge(int age) {this.age = age;}public String getName() {return ;}public int getAge() {return this.age;}}2. 使用JavaBean2.1 使用JavaBean的好处1.可以将html和java代码分离,后期维护更加方便2.可以让代码得到复用2.2 在JSP中如何使用JavaBean注意需要在使用的地方引入JavaBean,引入JavaBean可以•采用page的import•也可以使用jsp的useBean(用的多)使用page的import//xiaoD是包名<%@ page import="xiaoD.FirstBean" %><%FirstBean firstBean = new FirstBean();firstBean.setName("xiaoD");firstBean.setAge(21);%><%=firstBean.getName() %><%=firstBean.getAge() %>输出xiaoD21使用jsp的useBean<jsp:useBean id="firstBean" scope="request"class="xiaoD.FirstBean" /><%firstBean.setName("xiaoD");firstBean.setAge(21);%><%=firstBean.getName() %><%=firstBean.getAge() %>输出xiaoD21useBean使用注意:这里的id是实例化以后的id,scope是对象的作用范围,可以取值为page,request,session,application。
跟我学Java入门到精通培训教程——第7章JavaBean编程技术及应用实例(第2部分)
1.1跟我学Java入门到精通培训教程——第7章JavaBean编程技术及应用实例(第2部分)1.1.1JavaBean中限制属性的实现代码示例为Bean增加事件处理的功能,使其可响应用户的鼠标点击事件、焦点事件、鼠标进入退出和按下释放等事件;同时也为它提供按下与否down标识、是否获得焦点hasFocus、以及按纽的文字前景颜色foregroundColor共三个属性。
import java.awt.*;import java.io.Serializable;import java.beans.*; //为了能够使用PropertyChangeSupport类和使用VetoableChangeSupport 类import java.awt.event.*;public class JavaBeanButton extends Canvas implements Serializable {//任何实现了Serializable接口的Java类都可以成为一个JavaBean类,并且可以实现默认的序列化。
private Color backgroundColor=Color.lightGray;private String label;static final int TEXT_XPAD=12;static final int TEXT_YPAD=8;private PropertyChangeSupport changes=new PropertyChangeSupport(this);//实例化一个PropertyChangeSupport类的对象,它用于管理注册的监听器列表和属性改变事件通知的发送private VetoableChangeSupport vetos=new VetoableChangeSupport(this);//实例化一个VetoableChangeSupport类的对象,它用于管理注册的监听器列表和属性限制事件通知的发送private boolean down;private transient boolean hasFocus;private Color foregroundColor;private transient ActionListener actionListener=null;private transient MouseListener mouseListener=null;private transient FocusListener focusListener=null;public JavaBeanButton(){this("确定",true); //设置Bean的初始Label文字}public JavaBeanButton(String label,boolean down) {//设计一个带参数的构造函数以初始化Bean的Label属性super(); //通过调用基类的构造函数,以获得Canvas的一般特性bel=label;this.foregroundColor=Color.black;this.down=down;this.setFont(new Font("Dialog",Font.PLAIN,12)); //设置Bean的初始字体this.enableEvents(AWTEvent.FOCUS_EVENT_MASK| //必须设置此方法,否则Bean不能接受事件AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK|AWTEvent.ACTION_EVENT_MASK);}public void setBackgroundColor(Color backgroundColor){this.backgroundColor=backgroundColor;repaint();}public Color getBackgroundColor(){return this.backgroundColor;}public String getLabel(){return label;}public void setLabel(String newLabel) throws PropertyVetoException{String oldLabel=label;//在属性修改的方法体内,在修改限制属性之前触发属性否决事件,并传递原始的属性值和新的属性值(要求为Object对象类型的参数)vetos.fireVetoableChange("label",oldLabel,newLabel);label=newLabel;sizeToFit();//如果目标监听器允许限制属性的值被修改,将继续触发属性被修改事件changes.firePropertyChange("label",oldLabel,newLabel);//在属性修改的方法体内,在修改完关联属性后将触发属性修改事件}//实现维护属性修改监听器列表的方法(添加和删除)public void addPropertyChangeListener(PropertyChangeListener listener) {changes.addPropertyChangeListener(listener);}public void removePropertyChangeListener(PropertyChangeListener listener) { changes.removePropertyChangeListener(listener);}//实现维护限制属性修改的监听器列表的方法(添加和删除)public void addVetoableChangeListener(VetoableChangeListener listener){vetos.addVetoableChangeListener(listener);}public void removeVetoableChangeListener(VetoableChangeListener listener){ vetos.removeVetoableChangeListener(listener);}public Dimension getPreferredSize(){FontMetrics fm=getFontMetrics(getFont());return new Dimension(fm.stringWidth(label)+TEXT_XPAD,fm.getMaxAscent()+fm.getMaxDescent()+TEXT _YPAD);}public Dimension getMinimumSize(){return this.getPreferredSize();}private void sizeToFit(){//根据Bean上的文字长度实现调整Bean的尺寸的方法Dimension d=getPreferredSize();resize(d.width,d.height);Component p=getParent();if(p !=null){p.invalidate();yout();}}public void setFont(Font f){super.setFont(f);sizeToFit();}public void setForegroundColor(Color foregroundColor) {this.foregroundColor=foregroundColor;repaint();}public Color getForegroundColor(){return this.foregroundColor;}public boolean getHasFocus(){return this.hasFocus;}public void setHasFocus(boolean hasFocus){this.hasFocus=hasFocus;repaint();}public boolean isDown(){return this.down;}public void setDown(boolean down){this.down=down;repaint();}public synchronized void paint(Graphics g) {int width=this.getSize().width;int height=this.getSize().height;g.setColor(backgroundColor);g.fillOval(0,0,width,height);g.setColor(foregroundColor);FontMetrics fm=g.getFontMetrics(); //确保文字在按钮的中央if(down){g.drawString(label,((width-fm.stringWidth(label))/2)+2,((height+fm.getMaxAscent()-fm.getMaxDescent())/2)+1);}else {g.drawString(label,(width-fm.stringWidth(label))/2,(height+fm.getMaxAscent()-fm.getMaxDescent())/2);}if(hasFocus) {g.setColor(Color.lightGray);g.drawOval(2,2,width-6,height-6);}}//实现维护鼠标点击事件的监听器列表的方法(添加和删除)public synchronized void addActionListener(ActionListener listener) { actionListener=AWTEventMulticaster.add(actionListener,listener);}public synchronized void removeActionListener(ActionListener listener){ actionListener=AWTEventMulticaster.remove(actionListener,listener);}public synchronized void addMouseListener(MouseListener listener) { mouseListener=AWTEventMulticaster.add(mouseListener,listener);}public synchronized void removeMouseListener(MouseListener listener) { mouseListener=AWTEventMulticaster.remove(mouseListener,listener);}public synchronized void addFocusListener(FocusListener listener){ focusListener=AWTEventMulticaster.add(focusListener,listener);}public synchronized void removeFocusListener(FocusListener listener){ focusListener=AWTEventMulticaster.remove(focusListener,listener);}//向所有注册ActionListener的组件分发ActionEvent事件protected void processActionEvent(ActionEvent e){if(actionListener !=null){actionListener.actionPerformed(e);}}protected void processFocusEvent(FocusEvent e){ switch(e.getID()) {case FocusEvent.FOCUS_GAINED:hasFocus=true;repaint();if(focusListener !=null){focusListener.focusGained(e);}break;case FocusEvent.FOCUS_LOST:hasFocus=false;repaint();if(focusListener !=null){focusListener.focusLost(e);}break;}super.processFocusEvent(e);}protected void processMouseEvent(MouseEvent e){ switch(e.getID()) {case MouseEvent.MOUSE_PRESSED:down=!down;repaint();if(mouseListener !=null){mouseListener.mousePressed(e);}break;case MouseEvent.MOUSE_RELEASED: if(down){fireActionEvent();down=false;repaint();}if(mouseListener !=null){mouseListener.mouseReleased(e);}break;case MouseEvent.MOUSE_CLICKED: if(mouseListener !=null){mouseListener.mouseClicked(e);}break;case MouseEvent.MOUSE_ENTERED: if(mouseListener !=null){mouseListener.mouseEntered(e);}break;case MouseEvent.MOUSE_EXITED: if(mouseListener !=null){mouseListener.mouseExited(e);}break;}super.processMouseEvent(e);}private void fireActionEvent() {//内部支持方法processActionEvent(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,null));}}1.1.2JavaBean的事件编程1、通过事件处理机制所产生的效果可让一些组件作为事件源,发出可被描述环境或其它组件接收的事件。
跟我学Java入门到精通培训教程——第8章 利用JBuilder开发各种Java应用程序(第4部分)
1.1
跟我学 Java 入门到精通培训教程——第 8 章 利用 JBuilder 开发各种
Java 应用程序(第 4 部分)
1.1.1 利用 JBuilder 开发 JavaBean 的编程 1、创建 JavaBean 的 Project 项目文件 (1)选择 File|New Project 以新建一个项目文件
杨教授工作室,版权所有,盗版必究, 3/14 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
(3) 然后再增加其它属性
(4) 最后切换到 Source 视图以观看源程序
5、为 Bean 添加关联属性
杨教授工作室,版权所有,盗版必究, 4/14 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
PropertyChangeSupport(this); private String label; transient private VetoableChangeSupport vetoableChangeListeners = new
VetoableChangeSupport(this); transient private Vector actionListeners; transient private Vector focusListeners; transient private Vector mouseListeners; public JavaBeanButton() { try {
(2)设置其包名称、类名称等
(3)最后,点击 OK 按钮,将自动生成该 Bean 的程序代码
3、为 Bean 添加用户界面 选中该 Bean 的 Java 程序, 然后进入 Design 视图, 然后进行界面设计 (类同于一般的 Java
跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第1部分)
1.1JavaBean组件编程技术及应用实例(第1部分)1.1.1JavaBean组件相关编程技术1、Java语言的组件技术(1)JavaBean是什么?JavaBean 是一个特殊的类,这个类必须符合JavaBean规范。
JavaBean原来是为了能够在一个可视化的集成开发环境中可视化、模块化地利用组件技术开发应用程序而设计的。
JavaBean 是一种基于Java 的可复用的平台独立的软件组件,开发者可以在软件构造器工具中直接进行可视化操作,它是一种专门为当前软件开发者设计的全新的组件技术。
(2)JavaBean的种类它可以是简单的GUI元素,如按钮或滚动条;也可以是复杂的可视化软件组件,如数据库视图,但有些JavaBean是没有GUI表现形式的(称为非可视化软件组件),但这些JavaBean 仍然可以使用应用程序构造器可视化地进行组合。
一个JavaBean和一个Java Applet相似,是一个非常简单的遵循某种严格协议的Java 类。
每个JavaBean的功能都可能不一样,但它们都必须支持以下特征。
(3)JavaBean与微软的ActiveX的不同JavaBean是与平台无关的,而微软的ActiveX是基于Windows系统平台的。
2、一个标准的JavaBean组件应该满足以下几点特性(1)持续性持续性允许一个构件保存它的状态,因此它还能被重新创建。
JavaBeans持续性使用Java1.1环境对象序列化机制产生I/O流并在以后恢复。
构件创建者只需实现可序列化的接口以使构件保持持续。
持续的流可能为一个Java文件、一网络连接。
(2)制定性制定是JavaBean构件的新特性之一。
简而言之,Bean的创建者不仅创建运行状态的构件,而且还通过扩展ponent类创建了UI工具箱的类。
这个UI工具箱可被用来制定Bean的一个实例。
利用其它的构件模型,开发环境、可视化开发工具或任何其它的都必须提供所有对该构件的制定逻辑。
Java中的GUI编程入门指南
Java中的GUI编程入门指南Java作为一种功能强大的编程语言,提供了丰富的图形用户界面(Graphical User Interface,简称GUI)编程工具和库,使得开发人员能够轻松地创建具有吸引力和交互性的界面。
本文将为您介绍Java中的GUI编程,帮助您入门并了解GUI编程的基本原理和常用组件。
一、GUI编程基础在开始学习Java中的GUI编程之前,首先需要了解一些基础知识。
GUI编程是通过使用图形库和工具来创建用户界面,其中包括各种不同的用户界面元素,如窗口、按钮、文本框等。
Java提供了独立于操作系统的跨平台GUI编程工具,因此您的应用程序可以在不同的操作系统上运行,并保持一致的外观和功能。
二、Swing组件库Java中最常用的GUI编程工具是Swing组件库,它提供了各种各样的组件,用于创建界面的各个部分。
Swing组件库具有丰富的功能和可定制性,可以满足不同应用程序的需求。
以下是一些常用的Swing组件:1. JFrame:JFrame是Java中的顶层容器,用于创建和管理窗口。
您可以在窗口中添加其他组件,并定义窗口的大小、位置和操作。
2. JPanel:JPanel是用于布局和组织其他组件的容器。
您可以将多个JPanel组合在一起形成复杂的界面。
3. JButton:JButton是一个用于触发特定操作的按钮。
您可以为按钮添加事件监听器,以便在用户点击按钮时执行一些操作。
4. JLabel:JLabel用于显示文本或图像。
您可以使用JLabel来显示应用程序的标题、标签等。
5. JTextField:JTextField是一个文本输入框,用户可以在其中输入和编辑文本。
6. JTable:JTable用于显示和编辑表格数据。
您可以通过设置不同的表格模型和渲染器来自定义表格的外观和功能。
三、GUI编程示例为了帮助您更好地理解Java中的GUI编程,以下是一个简单的示例,演示了如何创建一个基本的用户界面。
自定义GUI 界面类型的JavaBean组件相关技术
当然也可以手写代码。
6、JavaBean的编程要点
一个Bean不必非要继承特定的基类或接口; 可视化的Bean必须继承的类是Component类,这样它们才 能添加到可视化容器中去; 非可视化Bean则不需要继承这个类。
一个Bean本质上就是一个Java类的代码,只是添加了所 谓的自检和序列化,因此Bean实际就是一个普通的Java 类。
(4)一个简单的JavaBean程序代码
(5)JavaBean程序结构要点
可视化的Bean应该从Component或者Canvas类来继承 每个Bean应该实现Serializable接口
(5)JavaBean程序结构要点(续)
JavaBean中的构造函数 每个JavaBean的类中应该提供一个不带参数的默认构造 函数,以便构造工具能够实例化其对象。 当然还应该有带参数的构造函数以便能够对它进行初始 化。
(2)说明
如果有setX和getX方法,则暗指有一个名为“x”的属性; 如果有一个方法名为isX,则通常暗指“x"是一个布尔属性 (即x的值为true或false)。
(3)JavaBean 中的单值属性 示例代码
(4)JavaBean单值属性编程实例
例:JavaBeanStepbyStep中的step2 问题:添加一个简单的颜色属性,Bean一旦有了属性,就 可以在开发工具中被可视化地修改。 在BeanBox中可视化地修改其属性。
在程序中的具体体现就是类中的变量(但是包含有操作方 法的成员变量)。 在JavaBean的设计中按照属性的不同作用又细分为四类 单值属性、索引属性、关联属性和限制属性
2、JavaBean中的单值属性
(1)含义 它表示一个伴随有一对get/set方法的变量。
Java入门培训教程简单说说JavaBean的使用
简单说说JavaBean的使用Java入门培训教程
兄弟连IT教育自2006年成立以来,至今已有11年教育经验,现已开设有PHP培训,Linux培训,Java培训、JavaEE+大数据培训、UI培训、机器人培训等课程。
一:JavaBean定义
JavaBean是一种可重复使用、跨平台的软件组件。
JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中的那些可视化图形界面,
;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。
JSP通常访问的是最后一种JavaBean。
二:Jsp与JavaBean搭配使用的特点
1.使得Html与Java程序分离,这样便于维护代码。
如果把所有的程序代码都写成jsp到网页中,会使得代码繁杂,难以维护。
2.可以降低开发jsp网页人员对Java编程能力的要求。
3.jsp侧重生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率。
三:一个标准的JavaBean有以下几个特性:
-JavaBean是一个公共的(public)类。
-JavaBean有一个不带参数的构造方法。
-JavaBean通过setXXX方法设置属性,通过getXXX方法获得属性。
跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第2部分)
1.1JavaBean组件编程技术及应用实例(第2部分)1.1.1自定义事件编程实例1、程序设计的基本思路(1)首先建立一个接口,继承于EventListener。
这个接口声明的方法,在调用的时候必需实现在实现事件的时候,往往需要传入数据,这个类就是为这个目的而设置,这里只是传入一个字符串。
(2)建立包括属性、方法、事件的类2、测试这个类的代码import java.util.*;/**首先建立一个接口,继承于EventListener。
这个接口声明的方法,在调用的时候必需实现*/interface myDemoListener extends EventListener {public void ReadTextEvent(myDemoEvent e);public void WriteTextEvent(myDemoEvent e);}/**在实现事件的时候,往往需要传入数据,这个类就是为这个目的而设置,这里只是传入一个字符串。
*/class myDemoEvent extends EventObject {private String Text; //定义Text内部变量public myDemoEvent(Object source,String Text) { //构造函数super(source);this.Text=Text; //接收从外部传入的变量}public String getText(){return Text; //让外部方法获取用户输入字符串}}//建立包括属性、方法、事件的类class Eventdemo{private Vector elv; //事件侦听列表对象public void addmyDemoListener(myDemoListener m) { //增加事件事件侦听器if (elv==null) {//如果表是空的,先建立它的对象elv=new Vector();}if (!elv.contains(m)) { //如果这个侦听不存在,则添加它elv.addElement(m);}}public void removemyDemoListener(myDemoListener m) { //删除事件侦听器if (elv!= null && elv.contains(m)) {elv.removeElement(m);}}protected void fireReadText(myDemoEvent e) { //点火ReadText方法if (elv != null) {int count = elv.size();for (int i = 0; i < count; i++) { //激活每一个侦听器的WriteTextEvett事件myDemoListener s=(myDemoListener)elv.elementAt(i);s.ReadTextEvent(e);}}}protected void fireWriteText(myDemoEvent e) { //点火WriteText方法if (elv != null) {int count = elv.size();for (int i = 0; i < count; i++) { //激活每一个侦听器的WriteTextEvett事件myDemoListener s=(myDemoListener)elv.elementAt(i);s.WriteTextEvent(e);}}}private String myText;//要求是读写myText属性,就启动事件读方法,启动ReadText事件public String getMyText(){//我们可以看到,myText是通过构造函数传进去的myDemoEvent textEvent = new myDemoEvent(this,myText);this.fireReadText(textEvent); //点火ReadText事件return myText;}public void setMyText(String text){ //写方法,启动WriteText事件myText=text;myDemoEvent textEvent = new myDemoEvent(this,text);this.fireWriteText(textEvent);}public String readmyText(){ //方法编程,必须说明,类的主要功能就是提供方法return "您好,我是:"+myText;}}//下面是测试这个类的代码class userEventdemo implements myDemoListener{Eventdemo eventdemo=new Eventdemo(); //建立这个类的对象public userEventdemo() { //构造方法eventdemo.addmyDemoListener(this); //加入myDemoListener事件侦听器}//这几个方法是myDemoListener提供,必需实现public void ReadTextEvent(myDemoEvent e){System.out.println("读属性事件触发,值是:"+e.getText());}public void WriteTextEvent(myDemoEvent e){System.out.println("写属性事件触发,值是:"+e.getText());}public static void main(String[] args) {userEventdemo myue = new userEventdemo();myue.eventdemo.setMyText("我是谁呀?");System.out.println( "读出来的属性是:"+ myue.eventdemo.getMyText());System.out.println( "方法结果是:"+ myue.eventdemo.readmyText());}}3、本示例程序的执行结果1.1.2JavaBean 组件的自检1、什么是JavaBean 组件的自检使外部组件能够寻找到关于JavaBean的结构和功能的内部信息。
javabean名词解释
javabean名词解释
Javabean是一种Java编程语言中用于描述对象数据的一种数据类型。
它是一个小而精悍的对象,包含了对象的属性和方法。
JavaBean 的特点是易于理解和维护,因为它封装了对象的属性和方法,使得开发者可以更轻松地管理和维护对象的数据。
JavaBean通常由JavaBeanDefinitionReader类来读取,可以使用JavaBeanDefinitionWriter类来写入。
在应用程序中,可以使用JavaBeanDefinitionReader类来读取JavaBean,并将其插入到应用程序的不同阶段,例如应用程序的类、方法或配置文件中。
JavaBean的应用领域非常广泛,包括数据库应用程序、Web应用程序、移动应用程序等。
在Web应用程序中,JavaBean通常用于提供用户交互式的界面和数据访问功能。
跟我学Java入门到精通培训教程——JavaBean组件编程技术及应用实例(第5部分)
杨教授工作室,版权所有,盗版必究, 1/17 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
import java.awt.*; import java.awt.event.*; import java.beans.*; public class BeanTestFrame extends Frame implements
杨教授工作室,版权所有,盗版必究, 2/17 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
} catch(PropertyVetoException e){ System.out.println(e.getMessage()); } ellipButton.addPropertyChangeListener(this); //为 Bean 添加 PropertyChangeListener 事件的监听器对象 ellipButton.addVetoableChangeListener(this); //为 Bean 添加 VetoableChangeListener 事件的监听器对象 ellipButton.addActionListener(this); ellipButton.addMouseListener(this); ellipButton.addFocusListener(this); ellipButton.addDoubleRightClickListener(this); pane.add(ellipButton); inputLabel=new TextField(20); inputLabel.addActionListener(this); pane.add(inputLabel); this.add(pane,BorderLayout.NORTH); this.setSize(750,400); this.addWindowListener(this); this.setVisible(true); } public static void main(String []args){ BeanTestFrame frame=new BeanTestFrame(); } public void windowOpened(WindowEvent parm1) { } public void windowClosing(WindowEvent parm1){ this.dispose();
移动互联应用技术《第十讲 JavaBean》
第十讲JavaBean主要内容:1.JavaBean概念2.JavaBean定义3.在JSP中使用JavaBean4.JavaBean作用域5.JavaBean使用实例一.JavaBean概念JavaBean 是一种JAVA语言写成的可重用组件。
“Write once, run anywhere, reuse everywhere〞,即“一次性编写,任何地方执行,任何地方重用〞。
JavaBean就是一个Java类,JavaBean是指一段特殊的Java类由于javabean是基于java语言的,因此javabean不依赖平台,具有以下特点:1.可以实现代码的重复利用2.易编写、易维护、易使用3.可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。
编写javabean就是编写一个java的类,所以你只要会写类就能编写一个bean,这个类创立的一个对象称做一个bean。
为了能让使用这个bean的应用程序构建工具〔比方JSP引擎〕知道这个bean的属性和方法,只需在类的方法命名上遵守以下规那么:1.如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:getXxx(),用来获取属性xxx。
setXxx(),用来修改属性xxx.。
2.对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"。
3.类中访问属性的方法都必须是public的,一般属性是private 的。
4.类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。
JavaBean可分为两种:一种是有用户界面的〔有UI的〕;另一种是没有用户界面的〔无UI的〕,无UI的JavaBean主要负责处理事务〔如数据运算,操纵数据库〕。
二.JavaBean定义【例】定义一个Person类,即定义一个JavaBeanpublic class Person{private String name = "zhangsan"; private int age = 24;private String address = "beijing"; public Person(){}public String getName(){return name;}public void setName(String name) { = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}public String getAddress(){return address;}public void setAddress(String address){this.address = address;}}【例】编写一个javaBean——Users用来处理用户登录信息package ers;import java.util.Date;public class Users {int userId;String name;String realName;String password;String sex;Date birthday;String phone;String address;public Users() {}public int getUserId() {return userId;}public void setUserId(int userId) {erId = userId;}public String getName() {return name;}public void setName(String name) { = name;}public String getRealName() {return realName;}public void setRealName(String realName) { this.realName = realName;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) { this.birthday = birthday;}public String getPhone() {return phone;}public void setPhone(String phone) { this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}三.在JSP中使用JavaBean有了JavaBean以后,我们怎么在JSP页面中访问它呢?方法有2种:直接访问和JSP标签访问〔不过我们推荐通过标签来访问〕1.直接访问a) 声明bean在页面顶部导入JavaBean类:<%@ page import="包名" %> 在JSP段实例化类:<% Users user = new Users(); %>b) 访问bean<% user.setXXX(aa); %><%=user.getXXX();%>2.标签访问〔推荐〕a) 声明bean使用userBean标签:语法:<jsp:useBean id="name" scope="page | request | session | application" classs=〞类名〞type=“变量的类型〞/>属性的用途:1)id:创立的JavaBean实例的名称。
javabean的类型
javabean的类型
JavaBean的类型通常指的是在Java中使用的标准JavaBean。
JavaBean是一种可重用组件的编程规范,在Java语言中用于构建可移植、可扩展且易于维护的软件组件。
JavaBean的类型可以根据功能和用途进行分类,以下是一些常见的JavaBean类型:
1. 属性访问器:用于封装和访问JavaBean的属性值的方法,通常是私有属性和公有getter和setter方法的组合。
2. 事件处理器:用于处理JavaBean的事件,例如用户界面的按钮点击事件等。
3. 序列化支持:实现了Serializable接口,使JavaBean能够以字节流的形式进行序列化和反序列化。
4. 数据模型:用于存储和处理数据的JavaBean,可以提供数据访问、数据验证和数据转换等功能。
5. 界面组件:可用于构建用户界面的JavaBean,例如按钮、文本框、复选框等。
6. 业务逻辑组件:用于实现业务逻辑的JavaBean,例如处理订单、计算税额等。
7. 数据访问组件:用于访问数据库或其他数据源的JavaBean,例如连接数据库、执行SQL查询等。
8. 工具类:提供常用功能的封装,例如日期处理、文件操作等。
需要注意的是,JavaBean的类型并不是严格定义的,可以根据具体需求和设计进行灵活组织和分类。
以上只是一些常见的JavaBean类型的示例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// and action command for each, and adding them to the buttonbox
yes = new Button();
// Create buttonsຫໍສະໝຸດ no = new Button();
cancel = new Button();
杨教授工作室,版权所有,盗版必究, 2/25 页
杨教授工作室,版权所有,盗版必究, 3/25 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
杨教授工作室,版权所有,盗版必究, 1/25 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
public YesNoPanel() { this("Your Message Here");
} public YesNoPanel(String messageText) {
this(messageText, "Yes", "No", "Cancel"); } public YesNoPanel(String messageText, String yesLabel, String noLabel, String cancelLabel) {
Panel buttonPanel = new Panel(); buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 25, 15)); this.add(buttonPanel, BorderLayout.SOUTH);
// Create each specified button, specifying the action listener
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
this.setYesLabel(yesLabel); this.setNoLabel(noLabel); this.setCancelLabel(cancelLabel); // Add the buttons to the button box buttonPanel.add(yes); buttonPanel.add(no); buttonPanel.add(cancel); } // Methods to query all of the bean properties. public String getMessageText() { return messageText; } public String getYesLabel() { return yesLabel; } public String getNoLabel() { return noLabel; } public String getCancelLabel() { return cancelLabel; } // Methods to set all of the bean properties. public void setMessageText(String messageText) { this.messageText = messageText; message.setText(messageText); validate(); }
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
1.1 自定义 GUI 界面类型的 JavaBean 组件实例(第 1 部分)
1、功能需求 设计一个包含有一个 Label 组件和三个 Button 组件的 Panel 类型的 JavaBean GUI 组件。
2、第一步—— 创建出 Bean (1)YesNoPanel 类的代码示例 import java.awt.*; import java.awt.event.*; import java.util.*; /** * 设计一个包含有一个 Label 和三个 Button 的 Panel Beans */ public class YesNoPanel extends Panel{
super(); //通过调用基类的构造函数,以获得 Panel 的一般特性 this.messageText=messageText; // The message to display this.yesLabel=yesLabel; // Text for the yes, no, & cancel buttons this.noLabel=noLabel; this.cancelLabel=cancelLabel; this.setLayout(new BorderLayout(15, 15)); // Put the message label in the middle of the window. message = new Label(messageText); add(message, BorderLayout.CENTER); // Create a panel for the Panel buttons and put it at the bottom // of the Beans Panel. Specify a FlowLayout layout manager for it.