java实验报告6 java_Swing

合集下载

实验六 java中swing组件开发

实验六 java中swing组件开发

java中swing组件开发一、实验目的1、掌握swing组件开发模型2、掌握flowlayout布局特点3、掌握gridlayout布局特点二、实验内容1. 启动eclipse2. 使用flowlayout创建登录界面3. 使用borderlayout创建登录界面三、实验步骤1、实验内容及要求:使用布局设计登录界面,要求输入用户名和密码正确才能登陆(验证方式不限)。

密码正确后进入系统主界面,主界面至少包括菜单条和文本区域(可以添加工具栏等)。

菜单至少包含“文件”、“编辑”、“格式”三个菜单(可自增加)。

每个菜单有相应菜单项,并要求点击相应菜单项可以实现相应行为。

如点击“文件”菜单中的“打开”菜单项时弹出“打开对话框”。

文本区域要有滚动条,并可进行文字编辑。

应用到的关键技术的详细说明。

可附相关的关键程序代码。

系统页面设计要求清晰、实用、美观。

2、代码:(1)、LoginIn.java(登录页面)1)、public class LoginIn extends JFrame{JTextField f1; JTextField f2; JPanel p5;JButton b1; JButton b2;LoginIn(){Container cp=getContentPane();Label l1=new Label("用户:"); Label l2=new Label("密码:");JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();b1=new JButton("登录"); b2=new JButton("重置");p2.add(l1);p2.add(f1);p3.add(l2);p3.add(f2);p4.add(b1);p4.add(b2);p5.add(p2); p5.add(p3);p5.add(p4);cp.add(p5,BorderLayout.CENTER);b1.addActionListener(new Enter()); b2.addActionListener(new ReWrite());addWindowListener(new winClose());}public static void main(String[] args) { LoginIn log=new LoginIn();log.setTitle("系统登录");log.setSize(360,250);log.setVisible(true); }2)点击按钮键监听器class Enter implements ActionListener{public void actionPerformed(ActionEvent e){ if((f1.getText()).equals("admin")&&(f2.getText()).equals("123")) {JOptionPane.showMessageDialog(null, "登录成功!"); //进入写字板new NewProgram().setVisible(true);setVisible(false);}else JOptionPane.showMessageDialog(null, "登录失败,请重新登录!"); }} class ReWrite implements ActionListener{//重置public void actionPerformed(ActionEvent e){f1.setText("");f2.setText("");f1.requestFocus();} }class winClose extends WindowAdapter{ public void windowClosing(WindowEvent e){ (e.getWindow()).dispose(); System.exit(0); }}}3)运行程序如图a:当输入错误的用户名或密码时如图b:当输入正确的用户名和密码时,如图c:,点击确定,进入写字板图D:a b cD(2)、写字板代码:1)菜单//新建菜单项监听器New.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { NewProgram.this.setTitle("无标题- 记事本.txt"); ja.setText(""); } });//退出菜单项监听器exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ fileName=NewProgram.this.getTitle(); if(flag==true){int i=JOptionPane.showConfirmDialog(null,NewProgram.this.getTitle()+"的文字已经改变,想保存文件嘛?", "写字板",JOptionPane.YES_NO_CANCEL_OPTION);});//保存菜单项监听器save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FileDialog fd=new FileDialog(NewProgram.this,"保存",FileDialog.SA VE);fd.setFile("*.txt"); fd.setVisible(true); filePath=fd.getDirectory();fileName=fd.getFile(); try {FileWriter fw = new FileWriter(filePath+fileName);BufferedWriter bw = new BufferedWriter(fw);PrintWriter pw = new PrintWriter(bw); pw.println(ja.getText()); pw.flush(); pw.close();} catch(IOException ioe){ ioe.printStackTrace(); } } });//另存为菜单项监听器saveas.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) { FileDialog fd=new FileDialog(NewProgram.this,"另存为...",FileDialog.SA VE);fd.setFile("*.txt"); fd.setVisible(true); filePath=fd.getDirectory();fileName=fd.getFile(); try {FileWriter fw = new FileWriter(filePath+fileName);BufferedWriter bw = new BufferedWriter(fw); PrintWriter pw = new PrintWriter(bw);pw.println(ja.getText()); pw.flush(); pw.close(); } catch(IOException ioe){ ioe.printStackTrace(); } } });//打开菜单项监听器open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){FileDialog fd1 = new FileDialog(NewProgram.this,"打开",FileDialog.LOAD);fd1.setFile("*.txt"); fd1.setVisible(true); fileName=fd1.getFile();filePath=fd1.getDirectory(); NewProgram.this.setTitle(fileName);try { FileReader fr = new FileReader(filePath+fileName);BufferedReader br = new BufferedReader(fr);String sinput = ""; ja.setText(""); int lineNum = 0;while ((sinput = br.readLine()) != null)// 读行,直到为空时停止循环{ ja.append(sinput + "\r\n"); lineNum++; } } catch(IOException ex){ ex.printStackTrace(); }} });2)、格式菜单//加系统的字体设置String[] fontNames=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();for(int i=0;i<fontNames.length;i++) { fontList.add(fontNames[i]); }//字体颜色、大小、形状面板监听器:color.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JColorChooser jColor=new JColorChooser(); //调用颜色面板,设置前景就可更改字体颜色Color fcolor=ja.getForeground();ja.setForeground( jColor.showDialog(ja,"选择字体颜色",fcolor)); } });cancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { fontMain.setVisible(false); }});ok.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { fontMain.setVisible(false); } });font.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fontJd.setLocationRelativeTo(NewProgram.this);fontJd.setVisible(true); int style = 0; fontJd.dispose(); } } } });//文件改变事件的监听器ja.getDocument().addDocumentListener(new DocumentListener(){ public void changedUpdate(DocumentEvent arg0) { flag=true; }public void insertUpdate(DocumentEvent arg0) { flag=true; }public void removeUpdate(DocumentEvent arg0) { flag=true; } });this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent w) {fileName=NewProgram.this.getTitle();if(flag==true){int i=JOptionPane.showConfirmDialog(null,NewProgram.this.getTitle()+"的文字已经改变,想保存文件嘛?", "写字板",JOptionPane.YES_NO_CANCEL_OPTION); });3、编辑菜单//右键快捷方式监听器jcopy.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ ja.copy(); } } ); jpaste.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ja.paste(); } } );jcut.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ja.cut(); } });jselectall.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ja.selectAll(); } });ja.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e){ if (e.isPopupTrigger()){ jp.show((Component) (e.getSource()), e.getX(), e.getY());//复制菜单项监听器copy.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ja.copy(); } } );//粘贴菜单项监听器paste.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ try { ja.paste(); }catch(Exception ex) { ex.printStackTrace(); } } } );//剪切菜单项监听器cut.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) { try { ja.cut(); } Catch(Exception ex) { ex.printStackTrace(); } } });selectall.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { ja.selectAll(); } });//关于监听器about.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){jfm.setLocationRelativeTo(NewProgram.this); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { jfm.setVisible(false); } }); } });//状态栏菜单监听器lookup.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ if (a==1) {lb.setVisible(false); a=0; } else if (a==0){ NewProgram.this.add(lb, BorderLayout.SOUTH); lb.setVisible(true);lb.setText("当前字数: "+String.valueOf(ja.getText().trim().length())+" "+"当前行数:"+String.valueOf(ja.getLineCount())); a=1; } } });//添加滚动条JScrollPane jsp = new JScrollPane(ja); Container c = this.getContentPane(); c.add(jsp);jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEE DED);jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); this.setVisible(true); }}实验问题:1、使用布局设计登录界面,要求输入用户名和密码正确才能登陆,否则则不能。

java6Swing

java6Swing



String getText()
String getSelectedText() boolean isEditable() void setEditable(boolean b) Color getBackground()

void setBackground(Color c)

Button组件被称为按钮组件,它是图形用户界面中非
在FlowLayout类中,提供了构造方法和部分方法: FlowLayout() FlowLayout(int align)


FlowLayout(int align, int hgap, int vgap)
int getAlignment() void setAlignment(int align) int getHgap() void setHgap(int hgap)
(4)可以在顶层容器中添加菜单栏,它将位于顶层容器
的约定位置。
窗口框架容器、内容窗格和菜单栏的位置关系

在Swing中,用JFrame类实现窗口框架 ,可视组件
不能直接放置在顶层容器中,需要与内容窗格 (ContentPane)配合使用。


在JFrame类中,提供了两种格式的构造方法:
JFrame() JFrame(String title)


int getVgap()
void setVgap(int vgap)

BorderLayout是Frame和Dialog两种容器的默认布局
管理器,它将容器分为5个部分,分别命名为North、
South、West、East和Center。

BorderLayout类提供了两种格式的构造方法:

JAVA-SWING图形界面程序设计实验报告(附完整代码)

JAVA-SWING图形界面程序设计实验报告(附完整代码)

图形界面(GUI)程序设计一、课题内容和要求内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。

要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。

通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。

二、设计思路分析class RMBtoDollar:主类,调用主函数。

class change:设置界面,并通过界面上的事件触发实现汇率转换。

三、概要设计public class RMBtoDollar{public static void main(String[] args);}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change();public void mousePressed(MouseEvent e);public void mouseClicked(MouseEvent e);public void mouseEntered(MouseEvent e);public void mouseExited(MouseEvent e);public void mouseReleaseed(MouseEvent e);//鼠标释放时进行转换}四、详细设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RMBtoDollar {public static void main(String[] args) {new change();}}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change() {//添加组件和设置布局l1 = new JLabel("人民币/元:");l2 = new JLabel("美元/dollar:");l3=new JLabel("(汇率:6.17)");tf1 = new JTextField(12);tf2 = new JTextField(12);b = new JButton("转换");add(l1);add(tf1);add(l2);add(tf2);add(l3);add(b);setLayout(new FlowLayout(FlowLayout.CENTER));setTitle("人民币转换为美元");setBounds(300, 300, 300, 150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);b.addMouseListener(this);//鼠标事件监视器}public void mousePressed(MouseEvent e) {if (tf2.getText() != null) {// tf2 test 默认初始设为空tf2.setText("");}}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseReleased(MouseEvent e) {if (tf1.getText() != null) {// 检查tf1 test 是否为空try {// 取异常RMB = Double.parseDouble(tf1.getText());// 字符转为double型Dollar = RMB / 6.17;//转换tf2.setText("" + Dollar);// 显示} catch (Exception ex) {tf1.setText("");// 如果输入不是数字,设为空}}}}五、测试数据及其结果分析1正常输入:2输入字符串不能转为double型时清空输入框:3结果:输出正常。

java六

java六

南昌航空大学实验报告二0一一年四月十六日课程名称:java语言与面向对象程序设计实验名称:异常、多线程与Swing班级:08061105 姓名:黄依婷同组人:指导教师评定:签名:一、实验目的(1)了解java的异常处理机制。

(2)掌握使用java的异常处理机制来提高程序的容错性的方法。

(3)了解线程的概念。

(4)学习简单的多线程编程。

(5)学习简单的Swing图形界面程序设计。

二、实验任务(1)选择一个比较了解的java系统异常,例如ArrayIndexOutofBoundsException,编程创建并抛出这个异常类的实例。

运行该程序并观察执行结果。

(2)利用多线程技术编写Applet程序,包含一个滚动的字符串,字符串从左向右运动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右滚动。

(3)利用多线程技术编写Applet程序,实现在播放一个动画文件的同时,播放一段背景音乐。

三、实验分析与代码实现(1)根据题意,自定义一个异常类ArrayIndexOutofBoundsException,当一个数组的长度大于100或则小于0的时候为数组越界,源代码如下:import java.io.*;class ArrayIndexOutOfBoundsException extends Exception{public ArrayIndexOutOfBoundsException(){super();}public ArrayIndexOutOfBoundsException(String s){super(s);}}public class ArrayIndex{public static void main(String args[]){int str[] = new int[109];String s;try{i nt array = Array(str);s = String.valueOf(array);}catch (ArrayIndexOutOfBoundsException e){ s = e.getMessage(); }System.out.println(s);}public static int Array(int str[]) throws ArrayIndexOutOfBoundsException{int int1;int answer = -1;try {int1 = str.length;if( int1 > 100 || int1 < 0 ){ ArrayIndexOutOfBoundsException e = newArrayIndexOutOfBoundsException("The array is out ofbounds.");throw e; }answer = int1;} catch (ArrayIndexOutOfBoundsException e){System.out.println( e.toString() ); } return answer; }}(2)import java.awt.*;import java.applet.*;public class Huang extends Applet implements Runnable{final String rollingMessage = "做自己有计划。

java实训报告总结和心得3篇

java实训报告总结和心得3篇

java实训报告总结和心得3篇Summary and experience of java training report汇报人:JinTai Collegejava实训报告总结和心得3篇前言:报告是按照上级部署或工作计划,每完成一项任务,一般都要向上级写报告,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想等,以取得上级领导部门的指导。

本文档根据申请报告内容要求展开说明,具有实践指导意义,便于学习和使用,本文档下载后内容可按需编辑修改及打印。

本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】1、篇章1:java实训个人总结样本(最新版)2、篇章2:java项目总结范文标准版3、篇章3:工程实训心得体会模板篇章1:java实训个人总结样本(最新版)在学院领导老师的带领和安排下,我们在上个学期末,到北京进行了为期10天的专业实习。

在实习过程中,我们在专编程技能以及软件开发的总体架构思想上都收获颇丰。

本次实训我们分为两个阶段,前五天为第一阶段,我们进行了理论知识的学习,巩固和深化了所学的编程知识。

以下谈一谈个人的感受与体会一、理论知识的学习在实训进行的前五天,我们上的是java编程的理论课。

负责上课的老师言语风趣幽默而不失严谨,在老师的引导和启发下,我们巩固了之前在学校所学的编程知识,并加以深化,澄清之前对编程技术认识的一些错误或模糊的概念。

我们还在课上以java里GUI编程常用的swing框架和JAVA的容器体系作为切入点,框架作为这期间除了学习一般的编程的知识技巧。

在全面的系统的认识了框架同时补充学习了泛型技术,以及框架中架构思想的知识。

在企业的实际编码过程中,一个个框架构成了软件的基石,只有掌握了几门框架知识,才能在实践中高效开发,让自己的产品在市场上立于不败之地。

在理论课的学习过程中,我们也暴露了一些问题,比如在学校上课学习时,对所学知识只是知其然而不知其所以然,不太愿意深钻,和超前学习一些知识。

java实验报告

java实验报告

信息工程学院Java语言课内实习报告(2013~2014学年第二学期)实习题目:Swing姓名:学号:专业:年级班级:一、实习目的使用Java做图形界面啦,了解图形用户界面基本组件的使用,布局管理器如何对组件进行管理以及事件处理机制的应用。

二、实习设计过程任务一:小小界面设计请设计一个界面,包括:菜单,文本框,按钮,标签,文本区,选择框,单选按钮和下拉列表。

任务二: 计算器(1)编写一个计算器的程序,主界面由多个按钮组建、文本框组建构成。

运行结果如图所示:任务三:算数测试编写一个算术测试小软件,用来训练小学生的算术能力。

程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确:ComputerFrame类对象提供的GUI界面看到题目并通过该GUI界面给出题目的答案;MailClass是主类。

任务四:日历该窗口为BorderLayout布局。

窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter 的中放置49个标签,用来显示日历。

窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。

窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中请完成界面设计和相关功能。

三、调试过程中存在问题分析布局过程中运行出来的图片效果不是自己设计的那样,有的文字被隐藏,重新调整文本框大小就弄好了。

四、心得、体会与建议这次实习过程中,感觉最有难度的是算数测试题目的设计,要判定结果是否正确。

总体做起来还是很简单的。

附录:题目1代码:import javax.swing.*;import java.awt.*;public class MyTu {private JFrame frame;private JTextField textField;private JTextField textField_1;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {MyTu window = new MyTu();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public MyTu() {initialize(null);}/*** Initialize the contents of the frame.* @param menuBar*/@SuppressWarnings({ "unchecked", "rawtypes" })private void initialize(JMenuBar menuBar) {frame = new JFrame();frame.setTitle("\u6211\u81EA\u5DF1\u7684\u5C0F\u5C0F\u754C\u9762");frame.setBounds(100, 100, 450, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);menuBar = new JMenuBar();frame.setJMenuBar(menuBar);JMenu mnNewMenu = new JMenu("\u6587\u4EF6");mnNewMenu.setFont(new Font("宋体", Font.PLAIN, 14));mnNewMenu.setHorizontalAlignment(SwingConstants.CENTER);menuBar.add(mnNewMenu);JMenuItem mntmNewMenuItem = new JMenuItem("\u65B0\u5EFA");mntmNewMenuItem.setHorizontalAlignment(SwingConstants.LEFT);mnNewMenu.add(mntmNewMenuItem);JMenuItem menuItem = new JMenuItem("\u6253\u5F00");menuItem.setHorizontalAlignment(SwingConstants.LEFT);mnNewMenu.add(menuItem);JMenuItem menuItem_1 = new JMenuItem("\u5173\u95ED");menuItem_1.setHorizontalAlignment(SwingConstants.LEFT); mnNewMenu.add(menuItem_1);JMenu mnNewMenu_1 = new JMenu("\u7F16\u8F91"); mnNewMenu_1.setFont(new Font("宋体", Font.PLAIN, 14)); mnNewMenu_1.setHorizontalAlignment(SwingConstants.CENTER); menuBar.add(mnNewMenu_1);JMenuItem menuItem_2 = new JMenuItem("\u67E5\u627E"); menuItem_2.setHorizontalAlignment(SwingConstants.LEFT); mnNewMenu_1.add(menuItem_2);JMenuItem menuItem_3 = new JMenuItem("\u66FF\u6362"); menuItem_3.setHorizontalAlignment(SwingConstants.LEFT); mnNewMenu_1.add(menuItem_3);JMenuItem menuItem_4 = new JMenuItem("\u5B9A\u4F4D"); menuItem_4.setHorizontalAlignment(SwingConstants.LEFT); mnNewMenu_1.add(menuItem_4);JMenu menu = new JMenu("\u683C\u5F0F");menu.setHorizontalAlignment(SwingConstants.CENTER);menu.setFont(new Font("宋体", Font.PLAIN, 14));menuBar.add(menu);JMenuItem menuItem_5 = new JMenuItem("\u6BB5\u843D"); menu.add(menuItem_5);JMenuItem menuItem_6 = new JMenuItem("\u5B57\u4F53"); menu.add(menuItem_6);frame.getContentPane().setLayout(null);textField = new JT extField();textField.setBounds(91, 38, 122, 21);frame.getContentPane().add(textField);textField.setColumns(10);JLabel label = new JLabel("\u7528\u6237\u540D");label.setBounds(23, 38, 58, 21);frame.getContentPane().add(label);JLabel label_1 = new JLabel("\u5BC6\u7801");label_1.setBounds(23, 72, 41, 15);frame.getContentPane().add(label_1);textField_1 = new JTextField();textField_1.setBounds(91, 69, 122, 21);frame.getContentPane().add(textField_1);textField_1.setColumns(10);JLabel label_2 = new JLabel("\u6027\u522B");label_2.setBounds(23, 107, 54, 15);frame.getContentPane().add(label_2);JRadioButton RadioButton2 = new JRadioButton("\u7537"); RadioButton2.setBounds(84, 103, 54, 23);frame.getContentPane().add(RadioButton2);JRadioButton RadioButton1 = new JRadioButton("\u5973"); RadioButton1.setBounds(157, 103, 54, 23);frame.getContentPane().add(RadioButton1);ButtonGroup select=new ButtonGroup();select.add(RadioButton1);select.add(RadioButton2);JLabel label_3 = new JLabel("\u6BD4\u8D5B\u7C7B\u578B"); label_3.setBounds(23, 147, 75, 21);frame.getContentPane().add(label_3);JCheckBox checkBox = new JCheckBox("\u4E13\u4E1A\u7EC4");checkBox.setBounds(84, 146, 66, 23);frame.getContentPane().add(checkBox);JCheckBox checkBox_1 = new JCheckBox("\u4E1A\u4F59\u7EC4");checkBox_1.setBounds(157, 146, 103, 23);frame.getContentPane().add(checkBox_1);JButton button = new JButton("\u767B\u9646");button.setBounds(38, 210, 93, 23);frame.getContentPane().add(button);JButton button_1 = new JButton("\u53D6\u6D88");button_1.setBounds(182, 210, 93, 23);frame.getContentPane().add(button_1);JTextArea textArea = new JTextArea();textArea.setT ext("\u62A5\u540D\u7684\u76EE\u7684\u662F\uFF1A");textArea.setBounds(266, 58, 160, 144);frame.getContentPane().add(textArea);JComboBox comboBox = new JComboBox();comboBox.setBounds(265, 27, 103, 21);comboBox.addItem("比赛");comboBox.addItem("报名");frame.getContentPane().add(comboBox);JLabel label_4 = new JLabel("\u62A5\u540D\u76EE\u7684");label_4.setBounds(266, 10, 54, 15);frame.getContentPane().add(label_4);}}题目2代码:import java.awt.EventQueue;public class MyTuTwo {private JFrame frame;private JTextField textField;/*** Launch the application.*/public static void main(String[] args) { EventQueue.invokeLater(new Runnable() {public void run() {try {MyTuTwo window = new MyTuTwo();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public MyTuTwo() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame();frame.setTitle("\u7B80\u6613\u8BA1\u7B97\u5668");frame.getContentPane().setFont(new Font("Dialog", Font.PLAIN, 15)); frame.setBounds(100, 100, 450, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);JPanel panel_1 = new JPanel();panel_1.setBounds(20, 66, 404, 37);frame.getContentPane().add(panel_1);panel_1.setLayout(null);JButton btnNewButton_23 = new JButton("Back");btnNewButton_23.setFont(new Font("Dialog", Font.PLAIN, 15)); btnNewButton_23.setBounds(0, 0, 96, 33);panel_1.add(btnNewButton_23);JButton btnNewButton_22 = new JButton("CE");btnNewButton_22.setFont(new Font("Dialog", Font.PLAIN, 15)); btnNewButton_22.setBounds(100, 0, 96, 33);panel_1.add(btnNewButton_22);JButton btnNewButton_21 = new JButton("C");btnNewButton_21.setFont(new Font("Dialog", Font.PLAIN, 15)); btnNewButton_21.setBounds(225, 0, 86, 33);panel_1.add(btnNewButton_21);JButton btnNewButton_20 = new JButton("About");btnNewButton_20.setFont(new Font("Dialog", Font.PLAIN, 15)); btnNewButton_20.setBounds(316, 0, 88, 33);panel_1.add(btnNewButton_20);JPanel panel_2 = new JPanel();panel_2.setBounds(20, 113, 195, 139);frame.getContentPane().add(panel_2);panel_2.setLayout(new GridLayout(4, 3, 4, 4));JButton btnNewButton_1 = new JButton("9");btnNewButton_1.setFont(new Font("Dialog", Font.PLAIN, 15));panel_2.add(btnNewButton_1);JButton btnNewButton_3 = new JButton("8");btnNewButton_3.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_3);JButton btnNewButton_6 = new JButton("7");btnNewButton_6.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_6);JButton btnNewButton_4 = new JButton("6");btnNewButton_4.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_4);JButton btnNewButton_5 = new JButton("5");btnNewButton_5.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_5);JButton btnNewButton_2 = new JButton("4");btnNewButton_2.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_2);JButton btnNewButton = new JButton("3");btnNewButton.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton);JButton btnNewButton_9 = new JButton("2");btnNewButton_9.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_9);JButton btnNewButton_7 = new JButton("1");btnNewButton_7.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_7);JButton btnNewButton_8 = new JButton("0");btnNewButton_8.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_8);JButton btnNewButton_10 = new JButton("+/-");btnNewButton_10.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_10);JButton btnNewButton_11 = new JButton(".");btnNewButton_11.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_2.add(btnNewButton_11);JPanel panel_3 = new JPanel();panel_3.setBounds(245, 115, 179, 137);frame.getContentPane().add(panel_3);panel_3.setLayout(new GridLayout(4, 2, 4, 4));JButton btnNewButton_13 = new JButton("/");btnNewButton_13.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_3.add(btnNewButton_13);JButton btnNewButton_14 = new JButton("sqrt"); btnNewButton_14.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_3.add(btnNewButton_14);JButton btnNewButton_16 = new JButton("*");btnNewButton_16.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_3.add(btnNewButton_16);JButton btnNewButton_15 = new JButton("%");btnNewButton_15.setFont(new Font("Dialog", Font.PLAIN, 15)); panel_3.add(btnNewButton_15);JButton btnNewButton_18 = new JButton("-");btnNewButton_18.setFont(new Font("Dialog", Font.PLAIN, 15));panel_3.add(btnNewButton_18);JButton btnNewButton_12 = new JButton("1/x");btnNewButton_12.setFont(new Font("Dialog", Font.PLAIN, 15));panel_3.add(btnNewButton_12);JButton btnNewButton_17 = new JButton("+");btnNewButton_17.setFont(new Font("Dialog", Font.PLAIN, 15));panel_3.add(btnNewButton_17);JButton btnNewButton_19 = new JButton("=");btnNewButton_19.setFont(new Font("Dialog", Font.PLAIN, 15));panel_3.add(btnNewButton_19);JPanel panel = new JPanel();panel.setBounds(20, 10, 404, 30);frame.getContentPane().add(panel);panel.setLayout(null);textField = new JTextField();textField.setBounds(0, 0, 404, 30);panel.add(textField);textField.setHorizontalAlignment(SwingConstants.RIGHT);textField.setText("0");textField.setEditable(false);textField.setColumns(10);}}题目3代码:import java.awt.*;public class ComputerJFrame extends JFrame implements ActionListener{JTextField textOne,textTwo,textResult;JButton getProblem,giveAnswer;JLabel operatorLabel,message;Teacher teacher;ComputerJFrame(String s){super(s);teacher = new Teacher();textOne=new JTextField(10);textOne.setBounds(111, 6, 66, 21);textTwo=new JTextField(10);textTwo.setBounds(215, 6, 66, 21);textResult=new JT extField(10);textResult.setBounds(307, 6, 66, 21);operatorLabel =new JLabel("+");operatorLabel.setBounds(187, 9, 18, 15);message = new JLabel("你还没有回答呢");message.setBounds(220, 37, 108, 15);getProblem = new JButton("获取题目");getProblem.setBounds(10, 5, 91, 23);giveAnswer = new JButton("确认答案");giveAnswer.setBounds(103, 33, 101, 23);getContentPane().setLayout(null);getContentPane().setLayout(null);getContentPane().setLayout(null);getContentPane().setLayout(null);getContentPane().add(getProblem);getContentPane().add(textOne);getContentPane().add(operatorLabel);getContentPane().add(textTwo);Label label = new Label("=");label.setBounds(290, 5, 21, 23);getContentPane().add(label);getContentPane().add(textResult);getContentPane().add(giveAnswer);getContentPane().add(message);//添加若干组件到窗口textResult.requestFocus();//textResult 获得焦点textOne.setEditable(false);textTwo.setEditable(false);//textOne设置textOne和textTwo不可编辑getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器giveAnswer.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器setBounds(100, 100, 432, 100);setLocationRelativeTo(null);//设置窗体居中显示setVisible(true);//窗口的可见性设置validate();addWindowFocusListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public void actionPerformed(ActionEvent e){if(e.getSource()==getProblem)//如果点击了“获取题目”{int number1 = teacher.giveNumberOne(100);//获取第一个操作数的值int number2 = teacher.giveNumberTwo(100);//获取第二个操作数的值String operator = teacher.giveOperator();//获取运算符textOne.setText(""+number1);//设置文本框参数字符串指定文本textTwo.setText(""+number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);//设置图形界面上文本框以及标签的文本,包括:textOne,textTwo,textResult,operatorLabel,message}if(e.getSource()==giveAnswer)//如果点击了“确认答案”{String answer = textResult.getText();//获取文本框中输入的答案try{int result = Integer.parseInt(answer);if(teacher.getRight(result)==true){message.setText("回答正确");}else{message.setText("回答错误");}//如果答案正确,message显示“你回答正确”,如果不正确,显示“你回答错误”}catch(NumberFormatException ex){message.setText("请输入数字字符");//如果输入的不是数字,显示“请输入数字字符”}}textResult.requestFocus();//textResult 获得焦点validate();}}题目4代码:import java.awt.EventQueue;public class Calendar {private JFrame frame;private JLabel lblNewLabel_1;private JLabel[] labelDay= new JLabel[42];private JButton button_1;private JButton button_2;private JButton button_3;private JButton button_4;private JButton button_5;private JButton button_6;private JButton button_7;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Calendar window = new Calendar();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public Calendar() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame();frame.setTitle("简易日历");frame.setBounds(100, 100, 348, 260);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(new BorderLayout(0, 0));JPanel pNorth = new JPanel();pNorth.setBackground(Color.WHITE);FlowLayout fl_pNorth = (FlowLayout) pNorth.getLayout();fl_pNorth.setHgap(10);frame.getContentPane().add(pNorth, BorderLayout.NORTH);JPanel pSouth = new JPanel();pSouth.setBackground(Color.WHITE);frame.getContentPane().add(pSouth, BorderLayout.SOUTH);Date date=new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");String s=formatter.format(date);String[] dateArr = s.split("-");final String year=dateArr[0]; //年final String month=dateArr[1]; //月//int m=Integer.parseInt(month);final int y=Integer.parseInt(year);final JLabel message = new JLabel("日历:"+y+"年"+month+"月");String[] str = message.getText().split("年");final String[] st=str[1].split("月");pSouth.add(message);JPanel pCenter = new JPanel();pCenter.setBackground(Color.WHITE);pCenter.setBorder(null);frame.getContentPane().add(pCenter, BorderLayout.CENTER);pCenter.setLayout(new GridLayout(7, 7, 0, 0));button_7 = new JButton("日");pCenter.add(button_7);button_1 = new JButton("一");pCenter.add(button_1);button_2 = new JButton("二");pCenter.add(button_2);button_3 = new JButton("三");pCenter.add(button_3);button_4 = new JButton("四");pCenter.add(button_4);button_5 = new JButton("五");pCenter.add(button_5);button_6 = new JButton("六");pCenter.add(button_6);for(int i=0;i<42;i++){labelDay[i] = new JLabel("",JLabel.CENTER);labelDay[i].setBackground(Color.WHITE);labelDay[i].setFont(new Font("宋体", Font.PLAIN, 15));labelDay[i].setHorizontalAlignment(SwingConstants.CENTER);pCenter.add(labelDay[i]);}int j=1;for(int i=0;i<30;i++){labelDay[i].setText(""+(j++));}JButton previousMonth = new JButton("上月");previousMonth.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {String[] str = message.getText().split("年");String[] st=str[1].split("月");int m=Integer.parseInt(st[0]);m=m-1;if(m==0){m=12;}message.setText("日历:"+y+"年"+m+"月");int j=1;if(m==5){for(int k=0;k<5;k++){labelDay[k].setT ext("");}for(int i=4;i<35;i++){labelDay[i].setText(""+(j++));}}else if(m==6){for(int i=0;i<30;i++){labelDay[i].setText(""+(j++));for(int q=30;q<42;q++){labelDay[q].setText("");}}}}});pNorth.add(previousMonth);JButton nextMonth = new JButton("下月");nextMonth.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {String[] str = message.getText().split("年");String[] st=str[1].split("月");int m=Integer.parseInt(st[0]);m=m+1;if(m==13){m=1;}message.setText("日历:"+y+"年"+m+"月");int j=1;if(m==7){for(int i=2;i<33;i++){labelDay[0].setText("");labelDay[1].setText("");labelDay[i].setText(""+(j++));for(int w=33;w<42;w++){labelDay[w].setText("");}}}else if(m==6){for(int i=0;i<30;i++){labelDay[i].setText(""+(j++));}for(int q=30;q<42;q++){labelDay[q].setText("");}}}});pNorth.add(nextMonth);}}。

javaswing图书管理系统实报告

javaswing图书管理系统实报告

四、实验方法和步骤
实验方法:
1、本系统是基于Java Swing+MySQL实现的图书管理系统。

2、采用Java Swing作为UI界面
3、MySQL数据库作为存储
4、JDBC原生方法操作
(封装了公共的增删改查方法,见src.model.access.Connect.java)
5、采用MVC模式分为Model层、View层、Controller层
6、采用了MD5进行密码加密
实验步骤:
1、需求分析
2、概念结构,绘制E-R图
3、逻辑结构设计:将E-R图转化为等价的关系模式
4、物理结构设计:数据库表的基本结构
5、功能实现
五、实验结果(截图)
1、登录界面
2、普通用户登录界面
3、管理员登录界面
4用户界面功能分别是
图书查询借阅、借阅归还信息、个人信息管理4.1借阅
4.3查询
4.4借阅信息
4.5归还
4.6个人信息管理4.7修改个人信息
4.8修改密码
5.登录界面功能5.1注册功能
6.忘记密码功能
7.管理端功能
图书信息管理、图书种类管理、读者类型管理、图书借阅信息、超级用户7.1界面
7.2添加图书
7.3删除图书
7.4修改图书
7.5图书类型管理7.6读者信息管理历史借阅信息
7.7超级管理员界面修改个人信息
修改个人密码
7.8超级管理员验证查询管理员信息
新增管理员
删除管理员
修改该管理员信息。

java Swing实验报告

java Swing实验报告

《Java程序设计-实验报告》
计算机科学系级班
课程名:《Java程序设计》
姓名:
学号:
指导教师:
实验项目:“Java GUI程序设计”
实验目的:
1、熟悉和掌握java Swing的基本GUI程序设计,掌握如何构建一个窗口程序,并且窗口中添加常用的Swing组件,使用各种布局管理器来完成对窗口中的组件进行布局。

2、了解Java事件处理机制,掌握基本的事件处理机制的基本程序编写。

实验要求:
使用java语言完成相关程序设计要求,编写代码、调试、运行,将编写的程序写在题目要求后面,对结果进行分析、得出编程的结论和心得。

实验内容:(两个题目,二选一)
1、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
2、试着用Swing类库完成以下程序界面(自行截图,尽量与下面界面接近):
提交要求:独立完成以上各个程序,查询相关资料和文档完成以上程序设计,将最后做完的界面截图,摘抄部分关键程序语句,写出碰到的问题,如何接近,心得总结等,17周之内提交打印文档。

攀枝花学院Java实验六 Java Swing(上课用)

攀枝花学院Java实验六 Java Swing(上课用)
}
}
}
运行结果如下::
2.Jbutton,CardLayout,BorderLayout,Jpanel,JLabel的用法
实验要求:
编写一个Java应用程序,实现如下图布局
代码如下:
package A;
import java.awt.BorderLayout;
import java.awt.CardLayout;
JPanel p,p1,p2,p3,butPanel;
JButton nextBut,preBut,button[]=new JButton[3];
JLabel label1,label2,label3;
CardLayout card;
public void init(){
p=new JPanel();
this.txt.setText("");
break;
case '/':
answer = a/b;
this.txt.setText("");
break;
default :
return null;
}
this.sb1 = new StringBuffer("");
this.sb2 = new StringBuffer("");
importjavax.swing.*;
publicclass菜单 {
publicstaticvoidmain (String[]args) {
ComponentInWindowwin=newComponentInWindow();
win.setBounds(100,100,310,260);

Java实验报告5-AWT和swing组件的功能

Java实验报告5-AWT和swing组件的功能

实验报告课程名称: Java语言程序设计院(系):管理学院专业班级:姓名:学号:指导教师:2013年6月9日《Java语言程序设计》上机实验报告序号实验五组号 1 成绩名称图形用户界面AWT/Swing组件学时 2评阅教师签名: 2013年月日一、实验目的1.熟悉Java AWT、swing组件的功能;2.掌握常用组件的事件接口;3.会应用AWT、swing组件进行应用程序设计。

二、实验内容AWT、swing组件应用程序设计设计(完成windows计算器两种以上的运算功能)。

三、实验硬件、软件环境1.PC计算机一台,配置为CPU为P42.8G,内存为512M,硬盘为80G;2.WindowsXP + JSDK1.6 + JCreatorV4。

四、实验算法设计在设计计算其界面的基础上,添加事件监视,对按钮进行各种操作。

五、程序设计/*** @(#)Calculator.java*** @author* @version 1.00 2013/6/9*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame{private final JTextField textField;private String num="0";private String operator="+";private String result="0";public static void main(String agrs[]){Calculator frame=new Calculator();frame.setVisible(true);}public Calculator(){super();setTitle("计算器");setResizable(false);setBounds(100,100,208,242);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JPanel viewPanel=new JPanel();add(viewPanel,BorderLayout.NORTH);textField=new JTextField();textField.setText(num);textField.setColumns(18);textField.setEditable(false);textField.setHorizontalAlignment(SwingConstants.RIGHT);viewPanel.add(textField);add(viewPanel,BorderLayout.NORTH);final JPanel clearButtonPanel=new JPanel();clearButtonPanel.setLayout(new GridLayout(1,3,5,5));add(clearButtonPanel,BorderLayout.CENTER);String[] clearButtonNames={"<-","CE","C"};for(int i=0;i<3;i++){final JButton button=new JButton(clearButtonNames[i]);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JButton button=(JButton)e.getSource();String text=button.getText().trim();if(text.equals("<-")){int length=num.length();if(length==1)num="0";else num=num.substring(0,length-1);}else if(text.equals("CE")){num="0";}else{num="0";operator="+";result="0";}textField.setText(num);}});clearButtonPanel.add(button);};final JPanel inputButtonPanel=new JPanel();final GridLayout gridLayout=new GridLayout(4,0,10,10);inputButtonPanel.setLayout(gridLayout);add(inputButtonPanel,BorderLayout.SOUTH);String[][]inputButtonNames={{"1","2","3","+"},{"4","5","6","-"},{"7","8","9","*"},{".","0","=","/"} };for(int row=0;row<4;row++){for(int col=0;col<4;col++){final JButton button=new JButton(inputButtonNames[row][col]);button.setName(row+""+col);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JButton button=(JButton)e.getSource();String name=button.getName();int row=Integer.valueOf(name.substring(0,1));int col=Integer.valueOf(name.substring(1,2));100if(col==3){count();textField.setText(result);operator=button.getText();}else if(row==3){if(col==0){if(num.indexOf(".")<0){num=num+button.getText();textField.setText(num);}}else if(col==1){if(num.indexOf(".")>0){num=num+button.getText();textField.setText(num);}else{if(!num.substring(0,1).equals("0")){num=num+button.getText();textField.setText(num);}}}else{count();textField.setText(result);operator="+";}}else{if(num.equals("0"))num=button.getText();else num=num+button.getText();textField.setText(num);}}void count(){float n=Float.valueOf(num);float r=Float.valueOf(result);if(r==0){result=num;num="0";}else{if(operator.equals("+")){r=r+n;}else if(operator.equals("-")){r=r-n;}else if(operator.equals("*")){r=r*n;}else {r=r/n;}num="0";result=r+"";}}});inputButtonPanel.add(button);}}}}六、程序测试记录及结果、运行说明七、实验总结系统的设计程序,完成程序前后关照,解决每个问题关键要求。

java实验报告:实验六

java实验报告:实验六

java实验报告:实验六一、实验目的本次实验的主要目的是深入理解和掌握 Java 中的一些关键概念和技术,包括面向对象编程的特性、异常处理机制以及文件操作等。

通过实际的编程实践,提高我们运用 Java 解决实际问题的能力。

二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,操作系统为 Windows 10。

三、实验内容(一)面向对象编程实践1、定义一个名为“Student”的类,包含学生的姓名、学号和成绩等属性,并实现相应的 getter 和 setter 方法。

2、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出。

(二)异常处理1、编写一个方法,实现两数相除的运算。

如果除数为 0,抛出“ArithmeticException”异常。

2、在主函数中调用该方法,并使用trycatch 语句捕获并处理异常。

(三)文件操作1、创建一个文本文件,并向其中写入一些数据。

2、读取该文件中的数据,并将其输出到控制台。

四、实验步骤(一)面向对象编程实践1、首先,在 IntelliJ IDEA 中创建一个新的 Java 项目。

2、然后,创建“Student”类,代码如下:```javapublic class Student {private String name;private int studentId;private double score;public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentId(){return studentId;}public void setStudentId(int studentId) {thisstudentId = studentId;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```3、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出,代码如下:```javapublic class Main {public static void main(String args) {Student student = new Student();studentsetName("张三");studentsetStudentId(1001);studentsetScore(905);Systemoutprintln("学生姓名:"+ studentgetName());Systemoutprintln("学生学号:"+ studentgetStudentId());Systemoutprintln("学生成绩:"+ studentgetScore());}}```(二)异常处理1、编写一个名为“divide”的方法,实现两数相除的运算,代码如下:```javapublic class ExceptionHandling {public static double divide(double num1, double num2) {if (num2 == 0) {throw new ArithmeticException("除数不能为 0");}return num1 / num2;}public static void main(String args) {try {double result = divide(10, 0);Systemoutprintln("结果:"+ result);} catch (ArithmeticException e) {Systemoutprintln("捕获到异常:"+ egetMessage());}}}```(三)文件操作1、创建一个名为“FileOperation”的类,用于实现文件的写入和读取操作,代码如下:```javaimport javaioBufferedWriter;import javaioFileWriter;import javaioIOException;import javaioBufferedReader;import javaioFileReader;public class FileOperation {public static void writeToFile(String filePath, String content) {try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))){writerwrite(content);} catch (IOException e) {eprintStackTrace();}}public static String readFromFile(String filePath) {StringBuilder content = new StringBuilder();try (BufferedReader reader = new BufferedReader(new FileReader(filePath))){String line;while ((line = readerreadLine())!= null) {contentappend(line)append("\n");}} catch (IOException e) {eprintStackTrace();}return contenttoString();}public static void main(String args) {String filePath ="testtxt";String data ="这是写入文件的内容";writeToFile(filePath, data);String readData = readFromFile(filePath);Systemoutprintln("读取到的文件内容:\n" + readData);}}```五、实验结果(一)面向对象编程实践成功创建了“Student”类的对象,并正确地对其属性进行了赋值和输出。

java实验六报告

java实验六报告

实验6 图形用户界面编程实验时间:2012年12月18日一、实验目的与要求1、掌握Java语言的基本图形用户界面技术——swing组件对象的定义和应用方法,并能够在应用程序中应用这些对象。

2、学习java事件的处理方法。

二、实验内容1、在一个面板里面输出一个字符串,字符串随着鼠标移动。

三、实验器材微机+windows操作系统+eclipse四、实验步骤import java.awt.*;import java.awt.event.*;import javax.swing.*;public class mousemotion extends JPanel{int x=20,y=20;int mode=0;//表示绘制模式public mousemotion(){addMouseMotionListener(new MouseMotionListener(){public void mouseDragged(MouseEvent e){mode=1;//拖动模式x=e.getX();y=e.getY();repaint();}public void mouseMoved(MouseEvent e){mode=2;//移动模式x=e.getX();y=e.getY();repaint();}});}public void paintComponent(Graphics g){switch(mode){case 1: g.clearRect(0,0,400,200);g.setFont(new Font("宋体",Font.BOLD,g.getFont().getSize()+10));draw(g,x,y);break;case 2: g.clearRect(0,0,400,200);draw(g,x,y);break;}}public void draw(Graphics g,int x,int y){g.drawString("Hello, Java世界",x,y);}public Dimension getPreferredSize(){return new Dimension(400,200);}public static void main(String args[]){JFrame frame=new JFrame();frame.add(new mousemotion());frame.setTitle("鼠标移动事件示例");frame.setSize(400,200);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}五、实验结果运行程序出现一个面板,面板中出现字符串“Hello, Java世界”,这个字符串随着鼠标移动。

Java与Swing的关系研究与实践

Java与Swing的关系研究与实践

Java与Swing的关系研究与实践这个世界上有很多编程语言,每个编程语言都有自己的特点和用途。

Java是一门广泛应用的编程语言,而Swing是Java的一个重要库,专门用于构建图形界面。

本文将探讨Java与Swing之间的关系,以及如何在实践中使用它们来开发强大的应用程序。

什么是Java和Swing?Java是一种跨平台的面向对象的编程语言,由Sun Microsystems(现在是Oracle)开发并于1995年正式发布。

Java具有简单、安全、可移植和面向互联网的特点,使其成为开发Web应用程序、移动应用程序和企业级应用程序的首选语言之一。

Swing是Java的一个图形用户界面(GUI)工具包,也是Java Foundation Classes(JFC)库的一部分。

它提供了一套丰富的组件(如按钮、文本框和滚动条等),以及用于创建用户友好界面的布局管理器和绘图工具。

Swing的目标是提供一个跨平台的GUI工具包,使开发人员能够在不同操作系统上创建一致的用户界面。

Java和Swing的关系Java和Swing之间存在着密切的关系。

事实上,Swing是Java的一部分,它是由Java开发者为了方便创建图形界面而开发的。

Swing基于Java的AWT (Abstract Window Toolkit),并在其基础上提供了更加丰富和强大的功能。

Swing提供了一套独立于平台的用户界面组件,与操作系统无关。

这意味着开发人员可以使用相同的代码在不同的操作系统上创建相似的用户界面。

这对于需要在多个平台上分发应用程序的开发者来说是非常有用的。

Swing还包含了丰富的可自定义的组件,开发人员可以根据自己的需求进行修改和扩展。

它还提供了一些功能强大的布局管理器,使开发人员可以轻松地设计和调整界面的布局。

使用Swing进行GUI开发在实践中,使用Swing进行GUI开发非常简单。

以下是一些使用Swing开发GUI应用程序的基本步骤:1. 引入Swing库首先,需要在Java项目中引入Swing库。

java实训报告总结范文

java实训报告总结范文

java实训报告总结范文Java语言程序设计是大部分高校计算机专业的一门核心能力课,Java实训操作又是达成其教学效果的重要环节和有效手段。

本文是小编为大家整理的java实训报告范文,仅供参考。

现在,一起来看看吧!java实训报告范文一一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。

2.熟练掌握Java中常用的Swing组件的使用方法。

3.熟练掌握Java程序中图形用户界面设计的方法。

4.熟练掌握使用JDBC操作数据库的方法。

5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。

二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的图书管理系统。

该系统从图书馆管理人员的角度出发,实现对图书信息、读者信息的浏览、添加、删除和查询,同时还可以对读者借书、还书过程进行操作和控制。

设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。

系统功能分析是在系统开发的总体任务的基础上完成的。

该管理系统需要完成的基本功能主要有:ω用户管理:主要包括用户的添加、修改和删除。

ω读者管理:主要包括读者信息的浏览、添加、删除和查询。

ω图书管理:主要包括图书信息的浏览、添加、删除和查询。

ω借还书管理:主要包括借书、还书和续借。

2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 2000或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想首先设计测试登录窗口:Text.java接下来设计LoginFrame.java(登录窗口)、MainFrame(主窗体)Addbookframe.java(图书入库窗口)、AddReaders.java(添加读者窗口)、AddUserframe.java(添加用户窗口)、Borrowframe.java(借书窗口)、Retumframe.java(还书窗口)、Queryframe.java(图书查询窗口)。

JAVA实验报告

JAVA实验报告

日期:2018年5月地点:明向校区公共机房6(1)实验题目,实验原理和内容一、实验目的:JAVA结构化程序设计二、实验原理:声明不同数据类型的变量,使用关系运算符和逻辑运算符,使用表达式语句与复合语句,使用选择语句,使用循环语句。

实验内容及要求:1、题目1:编写程序,实现从键盘输入一个0到100之内的整数,把百分制分数到等级分数的转换////>=90 A// 80~89 B// 70~79 C// 60~69 D// <60 E2、成法口诀阵形3、华氏和摄氏的转换法4、.从键盘输入10个数,排序输出。

要求:请同学们把调试好的程序及运行结果、存在的问题写在下面(不够可以附页)。

1、package test1;import java.util.*;public class TEST1 {public static void main(String[] args){System.out.println("请输入一个0到100之间的整数");Scanner scanner=new Scanner(System.in);int x;int m=scanner.nextInt();x=m/10;switch(x){ case 9: System.out.println("A");break;case 8: System.out.println("B");break;case 7: System.out.println("C");break;case 6: System.out.println("D");break;default: System.out.println("E");break;}}}2、package test2;public class TEST2 {public static void main(String[] args){int num;int m;for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){num=i*j;System.out.print(j+"*"+i+"="+num+ "\t");if(i==j)System.out.println(); }}}}3、package test3;import java.util.*;public class TEST3 {public static void main(String[] args){Scanner scanner=new Scanner(System.in);while(true) {System.out.println("请输入要转换的温度类型:c或f");String a=scanner.nextLine();String num1=new String("c");String num2=new String("f");String num3=new String("exit");if(a.equals(num1)){System.out.println("请输入要转换摄氏的温度:..");double C=scanner.nextFloat();System.out.println("对应的华氏温度为:");System.out.println(32+C*1.8+"F");}if(a.equals(num2)){System.out.println("请输入要转换华氏的温度:..");double F=scanner.nextFloat();System.out.println("对应的摄氏温度为:"+"C");System.out.println((F-32)/1.8+"C");}if(a.equals(num3)) break;String bank=scanner.nextLine();}}}4、package test4;import java.util.*;public class Test4 {public static void main(String[] args){Scanner scanner=new Scanner(System.in);int m;int[] a=new int[10];for(int i=0;i<=9;i++)a[i]=scanner.nextInt();int temp;for(int i=0;i<10;i++){ for(int j=i+1;j<10;j++){ if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}for(int x=0;x<=9;x++)System.out.print(a[x]+" ");}}日期:2018年5月地点:明向校区公共机房6(2)实验题目,实验原理和内容一.实验目的:数组、字符串与异常处理二.实验原理:使用数组,使用字符串与字符串类,处理异常。

java实验报告

java实验报告

实验一日志指导教师李盘林实验时间:2011 年3 月25 日学院计算机专业计算机科学与技术班级0410902 学号2009211596 姓名余思慧实验室s319实验题目:一个简单的应用程序的上机过程实验目的:1.掌握使用JDK开发Java程序的步骤(编辑、编译、运行)。

2.掌握Java程序的基本结构。

实验要求:编写一个简单的Java应用程序,输出两句话:“Hello, World!”“This is the first Java program.”实验主要步骤:3.创建目录D:\你的学号。

把这个目录作为我们的工作目录。

我们的Java源程序、编译后的字节码文件和用来运行Java Applet的html文件都放在这个目录中。

4.启动附件中记事本工具。

5.在记事本编辑如下源程序:public class Ex1{public static void main( String args[] ){System.out.println("Hello, World!");System.out.println("This is the first Java program.");}}6.保存程序。

注意,保存源程序时,程序名要与主类名一致。

即要用Ex1.java作为本程序的文件名。

(记事本默认的扩展名是*.txt,要改为*.java)。

把该文件保存到第一步所建的目录中(即D:\你的学号)。

7.编译程序。

启动MS_DOS窗口,键入如下命令:(假如你的学号是410808,即你建的目录为D:\410808)C:\WINDOWS>d:D:\>cd 410808D:\410808>javac Ex1.java如果编译成功,则在D:\410808目录中生成字节码文件Ex1.class。

8.运行程序。

D:\410808>java Ex1就可以运行程序。

注意:Ex1是上一步编译生成的Ex1.class,文件名有大小写区别。

基于javaswing的学生信息管理系统实训报告.doc

基于javaswing的学生信息管理系统实训报告.doc

《Java数据库程序设计》实训报告(电子版,含有部分示例源码)题目:学生管理系统(实验)SQL Server版姓名:________________ 敖思博 ____________________ 学号:___________ 1297807110526 _________________ 班级:_____________软件测试0701班_______________ 时间2009 年6 月16日一.系统需求分析1.背景:软件名称:学生管理系统实验(SQL Server版)提出者:杨国勋老师开发者:敖思博编写目的:实践java数据库程序设计,学习使用JDBC和JavaBean技术,学习分层开发模式,为学Hibernate做铺垫。

2.参考资料:Java1、12 Platform Standard Edition 6 API 规范Java 高级程序设计ISBN 7-5084-3907-4 Java 实用教程ISBN 978-7-302-13175-5 百度百科 baike. baidu.百度知道 zhidao. baidu.Csdn . csdn.3.需求规定:3. 1核心功能规定1录入学生信息2按照学号查询学生信息3按照姓名查询学生信息4按照班级号查询学生信息5按照班级名查询学生信息6按照专业号杳询学生信息7按照专业名查询学生信息8按照系别号查询学生信息9按照系别名查询学生信息10修改学生信息11删除学生信息12录入班级信息13按照班级号查询班级信息14按照班级名查询班级信息15按照专业号查询班级信息16按照专业名杳询班级信息17按照系别号查询班级信息18按照系别名查询班级信息19修改班级信息20删除班级信息21录入专业信息22按照专业号查询专业信息23按照专业名查询专业信息24按照系别号查询专业信息25按照系别名查询专业信息26修改专业信息27 删除专业信息 28 录入系别信息 29 按照系别号查询系别信息 30 按照系别名查询系别信息31 修改系别信息 32删除系别信息3.2主要辅助功能规定:其屮:录入部分所需耍涵盖的核心功能为 录入部分所需要涵盖的辅助功能为 查询部分所需要涵盖的核心功能为 査询部分所需要涵盖的辅助功能为 更新部分所需要涵盖的核心功能为 更新部分所需耍涵盖的辅助功能为1、 12、 21、 28; 6〜13.2〜9、 13〜18、 22〜25、 29〜30;14 〜21.11〜12、 20〜21、 27〜28、 31登陆部分所需耍涵盖的核心功能数为0; 登陆部分所需要涵盖的辅助功能为1〜3.主界面部分所需要涵盖的核心功能为:广32; 主界面部分所需要涵盖的辅助功能为:4~27;二.系统建模与设计系统设计为2主要个部分:登陆部分、主界面部分.主界面部分乂分为3个主要模块:录入模块、查询模块、更新模块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java程序设计》
课程实验报告(第 6 次)
学院:
姓名:
学号:
专业:软件工程
班级:2班
实验地点:分析测试中心6A-1
实验时间:
指导教师:
实验名称:Java Swing
所使用的开发工具及环境:JDK1.8+Eclpise
实验要求:
实验目的:
1、掌握窗口创建
2、掌握常用组件(JButton,JTextField,JFram,JPanel,JLabel,JScrollPane)
3、掌握常用布局(FlowLayout,CardLayout,GridLayout,BorderLayout,BoxLayout)
实验内容:
1.Jbutton,GridLayout,BorderLayout,Jpanel的用法
按钮的ActionEvent事件处理
实验要求:
编写一个Java应用程序,采用GridLayout实现如下计算机器的布局及做相应的事件处理
程序运行效果示例:
程序运行效果如下图所示:
computer类:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Computer extends JFrame implements ActionListener{
JTextField computText;
JPanel numPanel,operPanel;
JButton numBtn[],operBtn[];
String expression="";
public void init(){
computText=new JTextField();
expression+=Integer.parseInt(nums[0])+Integer.parseInt(nums[1]); computText.setText(expression);
}else if(oper.equals("-")) {
expression+=Integer.parseInt(nums[0])-Integer.parseInt(nums[1]); computText.setText(expression);
}else if(oper.equals("*")) {
expression+=Integer.parseInt(nums[0])*Integer.parseInt(nums[1]); computText.setText(expression);
}else if(oper.equals("/")) {
expression+=Integer.parseInt(nums[0])/Integer.parseInt(nums[1]); computText.setText(expression);
}
expression="";
}
}
}
测试类:
public class Test {
public static void main(String[] args) {
new Computer();
}
}
2.Jbutton,CardLayout,BorderLayout,Jpanel,JLabel的用法按钮的ActionEvent事件处理
实验要求:
编写一个Java应用程序,实现如下图布局及做相应的事件处理程序运行效果示例:
程序运行效果如下图所示:
mywindow类:v
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public Mywindow(){
this.setVisible(true);
this.setBounds(40, 40, 400,300);
this.setLayout(new BorderLayout());
init();
this.validate();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==open1) {
card.show(p, "p1");
}else if(e.getSource()==open2) {
card.show(p, "p2");
}else if(e.getSource()==exitItem) {
System.exit(0);
}
}
}
Test:
public class Test {
public static void main(String[] args) {
new Mywindow();
}
}
结果与分析:。

相关文档
最新文档