行业知识
Java2实用教程上机实践9,10,11
2026-11-13 11:42:09
来源:互联网转载
前言
大家好呀,大家肯定遇到过学校布置的作业不会做的情况吧?这个时候大量的网上找资料,找如何做这道题,为了帮助用Java2实用教程(耿祥义 张跃平主编)的学子们拿满平时分,这里整理出这本书中比较难的上机实践9(组件与事件处理)10(输入输出流)11(JDBC数据库操作)源码,请注意由于是作者手动复制粘贴,可能会出现类名错误或者包名不匹配等错误,自行调整即可,希望能帮助到有需要的人,感谢观看
上机实践9:组件与事件处理
实验 1 算术测试
MainClass.java
public class MainClass { public static void main(String args[]) { cqut.test6.ComputerFrame frame; frame = new cqut.test6.ComputerFrame(); frame.setTitle("算术测试"); frame.setBounds(100, 100, 650, 180); }} ComputerFrame.java
public class ComputerFrame extends JFrame { JMenuBar menubar; JMenu choiceGrade; JMenuItem grade1, grade2; JTextField textOne, textTwo, textResult; JButton getProblem, giveAnwser; JLabel operatorLabel, message; Teacher teacherZhang; ComputerFrame() { teacherZhang = new Teacher(); teacherZhang.setMaxInteger(20); setLayout(new FlowLayout()); menubar = new JMenuBar(); choiceGrade = new JMenu("选择级别"); grade1 = new JMenuItem("幼⼉级别"); grade2 = new JMenuItem("⼉童级别"); grade1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(10); } }); grade2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(50); } }); choiceGrade.add(grade1); choiceGrade.add(grade2); menubar.add(choiceGrade); setJMenuBar(menubar); textOne = new JTextField(5); textTwo = new JTextField(5); textResult = new JTextField(5); operatorLabel = new JLabel("+"); operatorLabel.setFont(new Font("Arial", Font.BOLD, 20)); message = new JLabel("你还没有回答呢"); getProblem = new JButton("获取题⽬"); giveAnwser = new JButton("确认答案"); add(getProblem); add(textOne); add(operatorLabel); add(textTwo); add(new JLabel("=")); add(textResult); add(giveAnwser); add(message); textResult.requestFocus(); textOne.setEditable(false); textTwo.setEditable(false); getProblem.setActionCommand("getProblem"); textResult.setActionCommand("answer"); giveAnwser.setActionCommand("answer"); teacherZhang.setJTextField(textOne, textTwo, textResult); teacherZhang.setJLabel(operatorLabel, message); getProblem.addActionListener(teacherZhang); giveAnwser.addActionListener(teacherZhang); textResult.addActionListener(teacherZhang); setVisible(true); validate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE); }} Teacher.java
import java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener { int numberOne, numberTwo; String operator = ""; boolean isRight; Random random; //⽤于给出随机数 int maxInteger; //题⽬中最⼤的整数 JTextField textOne, textTwo, textResult; JLabel operatorLabel, message; Teacher() { random = new Random(); } public void setMaxInteger(int n) { maxInteger = n; } public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if (str.equals("getProblem")) { numberOne = random.nextInt(maxInteger) + 1;//1 ⾄ maxInteger 之间的随机数; numberTwo = random.nextInt(maxInteger) + 1; double d = Math.random(); // 获取(0,1)之间的随机数 if (d >= 0.5) operator = "+"; else operator = "-"; textOne.setText("" + numberOne); textTwo.setText("" + numberTwo); operatorLabel.setText(operator); message.setText("请回答"); textResult.setText(null); } else if (str.equals("answer")) { String answer = textResult.getText(); try { int result = Integer.parseInt(answer); if (operator.equals("+")) { if (result == numberOne + numberTwo) message.setText("你回答正确"); else message.setText("你回答错误"); } else if (operator.equals("-")) { if (result == numberOne - numberTwo) message.setText("你回答正确"); else message.setText("你回答错误"); } } catch (NumberFormatException ex) { message.setText("请输⼊数字字符"); } } } public void setJTextField(JTextField... t) { textOne = t[0]; textTwo = t[1]; textResult = t[2]; } public void setJLabel(JLabel... label) { operatorLabel = label[0]; message = label[1]; }} 实验 2 布局与⽇历
CalenDdarPanel.java
import java.awt.*;import javax.swing.*;import java.time.*;public class CalendarPanel extends JPanel { GiveCalendar calendar; LocalDate[] dataArrays; public LocalDate currentDate; String name[] = {"⽇", "⼀", "⼆", "三", "四", "五", "六"}; public CalendarPanel() { calendar = new GiveCalendar(); currentDate = LocalDate.now(); dataArrays = calendar.getCalendar(currentDate); showCalendar(dataArrays); } public void showCalendar(LocalDate[] dataArrays) { removeAll(); GridLayout grid = new GridLayout(7, 7); setLayout(grid); JLabel[] titleWeek = new JLabel[7]; JLabel[] showDay = new JLabel[42]; for (int i = 0; i GiveCalendar.java
import java.time.*;public class GiveCalendar { public LocalDate [] getCalendar(LocalDate date) { date = date.withDayOfMonth(1); int days = date.lengthOfMonth(); LocalDate dataArrays[] = new LocalDate[days]; for (int i = 0; i ShowCalendar.java
public class ShowCalendar extends JFrame { CalendarPanel showCalendar; JButton nextMonth; JButton previousMonth; JLabel showYear, showMonth; public ShowCalendar() { showCalendar = new CalendarPanel(); add(showCalendar); nextMonth = new JButton("下⼀个⽉"); previousMonth = new JButton("上⼀个⽉"); showYear = new JLabel(); showMonth = new JLabel(); JPanel pNorth = new JPanel(); showYear.setText("" + showCalendar.currentDate.getYear() + "年"); showMonth.setText("" + showCalendar.currentDate.getMonthValue() + "⽉"); pNorth.add(showYear); pNorth.add(previousMonth); pNorth.add(nextMonth); pNorth.add(showMonth); add(pNorth,java.awt.BorderLayout.NORTH); nextMonth.addActionListener((e) -> { showCalendar.setNext(); showYear.setText("" + showCalendar.currentDate.getYear() + "年"); showMonth.setText("" + showCalendar.currentDate.getMonthValue() + "⽉"); }); previousMonth.addActionListener((e) -> { showCalendar.setPrevious(); showYear.setText("" + showCalendar.currentDate.getYear() + "年"); showMonth.setText("" + showCalendar.currentDate.getMonthValue() + "⽉"); }); setSize(290, 260); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public static void main(String args[]) { new ShowCalendar(); }} 实验 3 英语单词拼写训练
LetterLabel.java
import javax.swing.*;import java.awt.*;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;public class LetterLabel extends JTextField implements FocusListener { LetterLabel() { setEditable(false); addFocusListener(this);//【代码 1】 //将当前对象注册为⾃⾝的焦点视器 setBackground(Color.white); setFont(new Font("Arial", Font.PLAIN, 30)); } public static LetterLabel[] getLetterLabel(int n) { LetterLabel a[] = new LetterLabel[n]; for (int k = 0; k RondomString.java
public class RondomString { //负责随机排列单词中的字⺟ String str = ""; public String getRondomString(String s) { StringBuffer strBuffer = new StringBuffer(s); int m = strBuffer.length(); for (int k = 0; k SpellingWordFrame.java
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SpellingWordFrame extends JFrame implements KeyListener, ActionListener { JTextField inputWord; JButton button; test8.LetterLabel label[]; JPanel northP, centerP; Box wordBox; String hintMessage = "⽤⿏标单击字⺟,按左右箭头交换字⺟,将其排列成所输⼊的单词"; JLabel messaageLabel = new JLabel(hintMessage); String word = ""; SpellingWordFrame() { inputWord = new JTextField(12); button = new JButton("确定"); button.addActionListener(this); inputWord.addActionListener(this); northP = new JPanel(); northP.add(new JLabel("输⼊单词:")); northP.add(inputWord); northP.add(button); centerP = new JPanel(); wordBox = Box.createHorizontalBox(); centerP.add(wordBox); add(northP, BorderLayout.NORTH); add(centerP, BorderLayout.CENTER); add(messaageLabel, BorderLayout.SOUTH); setBounds(100, 100, 350, 180); setVisible(true); validate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent e) { word = inputWord.getText(); int n = word.length(); test8.RondomString rondom = new test8.RondomString(); String randomWord = rondom.getRondomString(word); wordBox.removeAll(); messaageLabel.setText(hintMessage); if (n > 0) { label = test8.LetterLabel.getLetterLabel(n); for (int k = 0; k WordMainClass.java
public class WordMainClass { public static void main(String args[]) { new SpellingWordFrame(); }} 实验 4 字体对话框
FontDialog.java
import java.awt.event.*;import java.awt.*;import javax.swing.*;public class FontDialog extends JDialog implements ItemListener, ActionListener { FontFamilyNames fontFamilyNames; int fontSize = 38; String fontName; JComboBox fontNameList, fontSizeList; JLabel label; Font font; JButton yes, cancel; static int YES = 1, NO = 0; int state = -1; FontDialog(JFrame f) { super(f); setTitle("字体对话框"); font = new Font("宋体", Font.PLAIN, 12); fontFamilyNames = new FontFamilyNames(); setModal(true); yes = new JButton("Yes"); cancel = new JButton("cancel"); yes.addActionListener(this); cancel.addActionListener(this); label = new JLabel("hello,奥运", JLabel.CENTER); fontNameList = new JComboBox(); fontSizeList = new JComboBox(); String name[] = fontFamilyNames.getFontName(); fontNameList.addItem("字体"); for (int k = 0; k FontDialogMainClass.java
public class FontDialogMainClass { public static void main(String args[]) { FrameHaveDialog win = new FrameHaveDialog(); }} FontFamilyNames.java
import java.awt.GraphicsEnvironment;public class FontFamilyNames { String allFontNames[]; public String[] getFontName() { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); allFontNames = ge.getAvailableFontFamilyNames(); return allFontNames; }} FrameHaveDialog.java
import java.awt.event.*;import java.awt.*;import javax.swing.*;public class FrameHaveDialog extends JFrame implements ActionListener { JTextArea text; JButton buttonFont; FrameHaveDialog() { buttonFont = new JButton("设置字体"); text = new JTextArea("java2实用教程"); buttonFont.addActionListener(this); add(buttonFont, BorderLayout.NORTH); add(text); setBounds(60, 60, 300, 300); setVisible(true); validate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonFont) { FontDialog dialog = new FontDialog(this); dialog.setVisible(true); if (dialog.getState() == FontDialog.YES) { text.setFont(dialog.getFont()); text.repaint(); } if (dialog.getState() == FontDialog.NO) { text.repaint(); } } }} 上机实践 10 输⼊和输出流
实验 1 分析成绩单
AnalysisResult.java
import java.io.*;public class AnalysisResult { public static void main(String[] args) { File fRead = new File("score.txt"); File fWrite = new File("scoreAnalysis.txt"); try{ Writer out = new FileWriter(fWrite,true); BufferedWriter bufferWrite = new BufferedWriter(out); Reader in = new FileReader(fRead); BufferedReader bufferRead =new BufferedReader(in) ; String str = null; while((str=bufferRead.readLine())!=null) { double totalScore= Fenxi.getTotalScore(str); str = str+" 总分:"+totalScore; System.out.println(str); bufferWrite.write(str); bufferWrite.newLine(); } bufferRead.close(); bufferWrite.close(); } catch(IOException e) { System.out.println(e.toString()); } }} Fenxi.java
import java.util.*;public class Fenxi { public static double getTotalScore(String s) { Scanner scanner = new Scanner(s); scanner.useDelimiter("[^0123456789.]+"); double totalScore=0; while(scanner.hasNext()){ try{ double score = scanner.nextDouble(); totalScore = totalScore+score; } catch(InputMismatchException exp){ String t = scanner.next(); } } return totalScore; }} 实验 2 统计英⽂单词
OutputWordMess.java
import java.util.*;public class OutputWordMess { public static void main(String args[]) { Vector allWord,noSameWord; WordStatistic statistic =new WordStatistic(); statistic.setFileName("hello.txt"); statistic.wordStatistic(); allWord=statistic.getAllWord(); noSameWord=statistic.getNoSameWord(); System.out.println("共有"+allWord.size()+"个英⽂单词"); System.out.println("有"+noSameWord.size()+"个互不相同英⽂单词"); System.out.println("按出现频率排列:"); int count[]=new int[noSameWord.size()]; for(int i=0;i
上一篇:服务器人工客服怎么找工作?
下一篇:b5服务器怎么加速?