Java编程

软帝学院教你java

age<=0) throw new IntegerException(age); //方法抛出异常,导致方法结束 else this.age=age; } public int getAge() { System.out.println("年龄"+age+"合理"); return age; }} public class ZuoYe6_5 { public static void main(String args[]) { People wang=new People(), zhang=new People(); try { wang.setAge(189); System.out.println(wang.getAge()); } catch(IntegerException e) { System.out.println(e.toString()); } try { zhang.setAge(28); System.out.println(zhang.getAge()); } catch(IntegerException e) { System.out.println(e.toString()); } } }第六章作业题1. import java.util.regex.*; import java.util.*; public class ZuoYe6_1{ public static void main(String args[ ]){ Scanner reader=new Scanner(System.in); String s1=reader.nextLine(); Pattern p; Matcher m; p=Pattern.compile("[24680]A[13579]{2}"); m=p.matcher(s1); while(m.find()){ String str=m.group(); System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:"); System.out.println(str); } } } 2. import java.util.regex.*; import java.util.*; public class ZuoYe4_1{ public static void main(String args[ ]){Scanner reader=new Scanner(System.in); String s1=reader.nextLine(); Pattern p; Matcher m; p=Pattern.compile("\\d+"); m=p.matcher(s1); while(m.find()){ String str=m.group(); System.out.print(str); } } }第七章作业题1. import java.util.*; public class ZuoYe7_2 { public static void main(String args[]) { int year,month; try { year=Integer.parseInt(args[0]); month=Integer.parseInt(args[1])+1; } catch(NumberFormatException e) { year=2004; month=1; } System.out.println(" 日一二三四五六"); Calendar 日历=Calendar.getInstance(); 日历.set(year,month,1); int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1; String a[]=new String[星期几+31]; for(int i=0;i<星期几;i++) { a[i]="**"; } for(int i=星期几,n=1;i<星期几+31;i++) { if(n<=9) a[i]=String.valueOf(n)+" "; elsea[i]=String.valueOf(n) ; n++; } for(int i=0;i A=new HashSet(), B=new HashSet(), tempSet=new HashSet(); A.add(new Integer(1)); A.add(new Integer(2)); A.add(new Integer(3)); A.add(new Integer(4)); B.add(new Integer(1)); B.add(new Integer(3)); B.add(new Integer(7)); B.add(new Integer(9)); B.add(new Integer(11)); tempSet=(HashSet)A.clone(); tempSet.retainAll(B); System.out.println(“交:”); Iterator iter=tempSet.iterator(); while(iter.hasNext()){ Integer te=iter.next(); System.out.printf(“%d,”,te.intValue()); } tempSet=(HashSet)A.clone();tempSet.addAll(B); iter=tempSet.iterator(); System.out.println(“并:”); while(iter.hasNext()){ Integer te=iter.next(); System.out.printf(“%d,”,te.intValue()); } tempSet=(HashSet)A.clone(); tempSet.removeAll(B); System.out.println(“差:”); iter=tempSet.iterator(); while(iter.hasNext()){ Integer te=iter.next(); System.out.printf(“%d,”,te.intValue()); } } } 5. import java.util.*; class MyKey implements Comparable{ double num。

软帝学院教你java

请问运行主要的程序会打印出的是什么()public class Test{public static void main(String [] args){List list=new ArrayList();list.add(“a”);list.add(“b”);list.add(“a”);Set set=new HashSet();set.add(“a”);set.add(“b”);set.add(“a”);System.out.println(list.size()+”,”+set.size());}}3,2。

import java.io.*; import java.net.*; public class Test05 { public static void main(String[] args) throws Exception { new TCPClient().connect(); } } class TCPClient { public void connect() throws Exception { Socket client = new Socket(InetAddress.getLocalHost(), 8002); InputStream is = client.getInputStream(); byte[] buf = new byte[1024]; int len = is.read(buf); System.out.println(new String(buf, 0, len)); client.close(); } }。

图形用户界面是计算机程序和用户交流的图形接口。图形用户界面是由各种不同的组件按照一定的布局模式排列组成的。GUI中的组件一般包括菜单、按钮、标签、文本编辑行等。同时与这些组件配合工作的还有一些相关的事件。JAVA中,GUI所用到的类和接口都是有AWT ABSTRACT WINDOW TOOLKIT提供。AWT是JAVA API的一部分。java.swing包可以根据换进过来调整GUI的外观和感觉,使得一个程序可以使用各种不同的环境。Component类是一个抽象类,是AWT中所有图形组件类的父类。add方法可用于在任何组件类对象中添加任何组件类对象。Container类主要用来防止其他组件,所以称作容器。它继承自Component类。容器类的派生子类有:框架Frame、面板Panel、窗口Window、对话框Dialog等。Panel类是一个放置其他图形组件(包括其他Panel)的容器。Frame类是Window的子类,主要用来放置其他组件。Frame类提供了设置标题、改变窗口大小等方法。Frame类对象是一个可在Window中独立运行的窗口,而Panel类对象不能单独运行,只能放在容器中(可以放在Frame中,也可以嵌入另一个Panel中)。Component类的子类除Container类外,还有Label标签类、Button按钮类、TextField文本输入行类、TextArea多行文本输入区类、Checkbox复选框类、List列表类、Choice下拉列表类等。任何一个容器类对象本身也可以放置在任何一个容器类对象中。Label类是用来显示文本text的类。TextField类用来创建允许用户编辑的单行文本组件。TextField可以获得焦点,而Lable不能。所以TextField可编辑,而Label不可编辑。TextField一般用作程序的输入。TextArea类用来创建允许用户编辑的多行文本输入组件,组件中的字符串可设定为可编辑的或只读的。TextArea类还提供水平或垂直的滚动条。FlowLayout布局管理器的功能是:在此框架中加入的组件将自上而下、自左而右安排放置。1 package gUI;23 import java.awt.*;45 public class TestFrame extends Frame6 {7 public static void main(String[] args)8 {9 TestFrame f = new TestFrame();10 f.setTitle(“My First Frame”);11 f.setSize(260, 160);12 f.setLayout(new FlowLayout());13 f.setLocation(0, 0);14 f.setResizable(false);1516 Label lb1 = new Label();17 lb1.setAlignment(Label.LEFT);18 lb1.setText(“My First Label”);19 f.add(lb1);2021 Button b1 = new Button(“My First Button”);22 f.add(b1);2324 TextField t = new TextField();25 t.setText(“My First TextField”);26 f.add(t);2728 TextArea t1 = new TextArea(“My First TextArea”, 3, 20);29 t1.setEditable(false);30 f.add(t1);31 f.setVisible(true);32 }33 }Checkbox类用来创建复选框组件。将几个Checkbox对象组成一组需用到CheckboxGroup类。框架中组件的位置由setBounds方法来确定(不使用任何布局管理器)。1 package gUI;23 import java.awt.*;45 public class TestCheckbox extends Frame6 {7 public static void main(String[] args)8 {9 TestCheckbox f = new TestCheckbox();10 f.setTitle(“Test Checkbox”);11 f.setSize(300, 200);12 f.setLayout(null);1314 Checkbox checkbox1 = new Checkbox(“Computer”, true);15 Checkbox checkbox2 = new Checkbox(“Finance”, true);16 Checkbox checkbox3 = new Checkbox(“Management”, false);1718 checkbox1.setBounds(10, 30, 60, 20);19 checkbox2.setBounds(10, 50, 60, 20);20 checkbox3.setBounds(10, 70, 60, 20);21 f.add(checkbox1);22 f.add(checkbox2);23 f.add(checkbox3);2425 CheckboxGroup zct = new CheckboxGroup();26 Checkbox c1 = new Checkbox(“Maths”, zct, false);27 Checkbox c2 = new Checkbox(“English”, zct, true);28 Checkbox c3 = new Checkbox(“Arts”, zct, false);29 Checkbox c4 = new Checkbox(“Physics”, zct, false);30 c4.setCheckboxGroup(zct);31 c1.setBounds(150, 30, 60, 20);32 c2.setBounds(150, 50, 60, 20);33 c3.setBounds(150, 70, 60, 20);34 c4.setBounds(150, 90, 60, 20);35 f.add(c1);36 f.add(c2);37 f.add(c3);38 f.add(c4);39 f.setVisible(true);40 }41 }List组件给用户提供了一个滚动的文本项清单,用户可以选中其中一项或多项文本。Choice是一个下拉式的数据选项,当前的选项会显示在选中列表框中。列表只能显示当前选择的项目,而下拉列表可以显示多个项目。1 package gUI;23 import java.awt.*;45 public class TestChoiceList extends Frame6 {7 public static void main(String[] args)8 {9 TestChoiceList f = new TestChoiceList();10 f.setTitle(“Test ChoiceList”);11 f.setSize(300, 200);12 f.setLayout(new FlowLayout());1314 List list1 = new List();15 list1.setMultipleMode(true);16 list1.add(“Liberty”);17 list1.add(“Maths”);18 list1.add(“Arts”);19 list1.add(“Physics”);20 list1.add(“KongFu”);21 list1.select(2);22 list1.select(4);23 f.add(list1);2425 Choice choice1 = new Choice();26 choice1.add(“University”);27 choice1.add(“Middle School”);28 choice1.add(“Primary School”);29 choice1.add(“Kindergarden”);30 choice1.select(2);31 f.add(choice1);32 f.setVisible(true);33 }34 }MenuComponent类直接继承自Object的菜单组件的基本类,它及其子类是专门用来创建菜单类组件。MenuBar是放置菜单的容器。可以通过Frame类的setMenuBar()方法把MenuBar对象加入一个框架中。Menu是菜单栏上放置的菜单。每个菜单由一些菜单项组成。所以菜单中的菜单项都是MenuItem类或者它的子类的对象。1 package gUI;23 import java.awt.*;45 public class TestMenu extends Frame6 {7 public TestMenu() {}89 public static void main(String[] args)10 {11 TestMenu frame1 = new TestMenu();12 frame1.setTitle(“My Menu”);13 frame1.setSize(200, 120);1415 MenuBar menubar1 = new MenuBar();1。

Font.BOLD, 40);1112 g.setFont(font);13 g.drawOval(60, 50, 80, 80);14 g.setColor(Color.red);15 g.fillOval(150, 50, 80, 80);16 g.setColor(Color.pink);17 g.drawOval(240, 50, 80, 80);18 g.setColor(Color.green);19 g.drawString(“I love Java”, 80, 260);20 g.setColor(Color.blue);21 for (i = 0; i < 20; i ++)22 {23 x = (int)(Math.random() * 300) + 30;24 y = (int)(Math.random() * 200) + 130;25 g.fillOval(x, y, 10, 10);26 }27 g.setColor(Color.orange);28 y = 100;29 for (i = 0; i < 40; i ++)30 {31 y += 5;32 g.drawRect(30, 30, 320, y);33 }34 }3536 public static void main(String[] args)37 {38 TestGraphics f = new TestGraphics();39 f.setTitle("My First Graphics");40 f.setSize(400, 345);41 f.setLocation(0, 0);42 f.setVisible(true);43 }44 }组件在容器中的摆放方式为布局。JAVA中不使用坐标这种绝对定位的方法,而是用布局管理器进行相对定位。优点是显示界面能够自动适应不同分辨率的屏幕。FlowLayout布局管理器从左到右排列组件,一行放满后,再从第二行开始。它是容器类组件Panel的默认布局管理器。当容器大小发生变化时,容器上组建的排放位置会发生变化,规律是组件的大小不变,但是相对位置会发生变化。FlowLayout构造方法后两个参数的单位都是像素。1 package gUI;23 import java.awt.*;45 public class TestFlowLayout extends Frame6 {7 public static void main(String[] args)8 {9 TestFlowLayout f = new TestFlowLayout();1011 f.setTitle("My FlowLayout Manager");12 f.setSize(200, 120);1314 FlowLayout fl = new FlowLayout();15 fl.setHgap(10);16 f.setLayout(fl);17 f.add(new Button("OK"));18 f.add(new Button("Cancel"));19 f.add(new Button("Password"));20 f.add(new Button("Reset"));21 f.setVisible(true);22 }23 }BorderLayout布局管理器按照东西南北中五个区域放置容器中的组件。它是容器类组件Window、Frame和Dialog等的默认布局管理器。当容器大小发生变化时,规律是组件的相对位置不变,大小发生变化。1 package gUI;23 import java.awt.*;45 public class TestBorderLayout extends Frame6 {7 public static void main(String[] args)8 {9 TestBorderLayout frame1 = new TestBorderLayout();1011 frame1.setTitle("My BorderLayout");12 frame1.setSize(200, 200);1314 BorderLayout border = new BorderLayout(5, 10);1516 frame1.setLayout(border);17 frame1.add(new Button("South"), BorderLayout.SOUTH);18 frame1.add(new Button("West"), BorderLayout.WEST);19 frame1.add(new Button("North"), BorderLayout.NORTH);20 frame1.add(new Button("East"), BorderLayout.EAST);21 frame1.add(new Button("Center"), BorderLayout.CENTER);22 frame1.setVisible(true);23 }24 }GridLayout布局管理器可以将容器分为若干个大小相等的矩形。对于复杂的布局,有时还需要用到容器Panel组件。事件源是产生事件的图形组件。用户对事件源进行的操作叫做事件。事件的属性信息包含事件的名称、来源、产生时间等。事件处理过程包括事件的接收和事件的处理两部分。事件的接收由系统负责。事件发生后,系统把时间传递给事件处理程序的方式称为事件模型。层次事件模型首先传递给直接相关的组件;若组件没对事件进行处理,则向上传递给组件所在的容器;若容器没处理,则继续向上传递给容器所在的容器。直至顶层容器。委托事件模型中事件的传递由事件监听器进行管理。任何事件处理程序首先向事件监听器注册,系统监听到后就委托给事件监听器。事件监听器通过分析时间的属性信息,把事件交给已注册的相应事件处理器来处理。JDK1.1以后的版本都采用这个。ActionListener接口中只定义了一个处理按钮单击事件的方法actionPerformed()。JAVA中的组件就是事件源,它可以产生一个或多个事件。java.awt.AWTEvent类是所有事件类的父类,所以事件类都由它派生出来。一个事件类对应一个事件监听器接口,命名方法是:去掉事件类后边的Event,换成Listener。不同的监听器接口中定义了不同的处理方法。一个事件处理器创建了以后,需要在程序中用语句来注册。addListener()是Component类提供的方法。与键盘事件KeyEvent相对应的键盘事件监听器接口是KeyListener。当键盘刚按下去时,调用keyPressed()方法;键盘抬起来时,调用keyReleased()方法;键盘单击一次时,调用keyTyped()方法。程序可以有几种方式实现事件监听器接口中方法:类定义时加上implements,然后再类中实现接口中的方法;用内部类定义和实现事件监听器接口。若暂时不处理某个窗口操作(事件),可以用一个空语句实现相应的方法。若要实现某个事件监听器接口,就必须实现该事件监听器接口中所以的方法,即使有些方法为空,也必须实现。为了简化设计,JAVA为一些事件的Listener(监听器)接口提供了事件适配器Adapter类。WindowAdapter类实现了WindowListener接口的所有方法(内容为空)。需要实现WindowListener接口时,只需要继承WindowAdapter类,并覆盖相应方法即可。1 package gUI;23 import java.awt.*;4 import java.awt.event.*;56 public class PhoneBook extends WindowAdapter implements ActionListener, ItemListener7 {8 Frame f;9 TextField tf1, tf2;10 List l;11 Button b1, b2;1213 public PhoneBook()14 {15 f = new Frame("PhoneBook");16 f.setSize(640, 480);1718 Panel p = new Panel();19 p.add(new Label("Name"));20 tf1 = new TextField(10);21 p.add(tf1);22 p.add(new Label("PhoneNumber"));23 tf2 = new TextField(20);24 p.add(tf2);25 b1 = new Button("Add");26 b2 = new Button("Delete");27 b1.addActionListener(this);28 b2.addActionListener(this);29 p.add(b1);30 p.add(b2);31 f.add(p, "North");3233 l = new List();34 l.add("Name PhoneNumber");35 l.addItemListener(this);36 f.add(l);3738 f.setVisible(true);39 f.addWindowListener(this);40 }4142 public void actionPerformed(ActionEvent e)43 {44 if (e.getSource() == b1)。

getSource()==jb3){int rowNum=this.jtInfo.getSelectedRow(); if(rowNum==-1){JOptionPane.showMessageDialog(this, “请选择一行删除”); return; }else{String sql=”delete from tb_student where stuId=?”; String stuId=(String)this.jtInfo.getValueAt(rowNum, 0);String[] params=new String[]{stuId}; StuModel myModel=new StuModel(); myModel.updateStu(sql, params);//重新获得新的数据模型 model=new StuModel(); String sql2=”select *from tb_student where 1=?”; String[] params2=new String[]{“1″}; model.queryStudent(sql2, params2); jtInfo.setModel(model); } }}public static void main(String[] args) { new MainFrame();}}2:SqlHelper 类: package com.stusys; import java.sql.*;import javax.sql.*; public class SqlHelper {//连接数据库的信息 private String driver=”com.mysql.jdbc.Driver”; private String url=”jdbc:mysql://localhost:3306/javaproject”; private String username=”root”; private String password=”123″;//操作数据库的类 private Connection conn=null; private PreparedStatement ps=null; private ResultSet rs=null;//根据无参数的 sql 语句获取结果集 public ResultSet queryResult(String sql){try { Class.forName(driver); conn=DriverManager.getConnection(url,username,password); ps=conn.prepareStatement(sql); rs=ps.executeQuery();} catch (SQLException e) {e.printStackTrace(); } catch (ClassNotFoundException e) {e.printStackTrace(); }finally{}return rs;}//根据 sql 语句与参数集合获取结果集 public ResultSet queryResult(String sql,String[] params){try { Class.forName(driver); conn=DriverManager.getConnection(url,username,password); ps=conn.prepareStatement(sql); for(int i=0;i

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注