Java 练习题
来源:互联网 发布:逆袭网络剧7第一集哇趣 编辑:程序博客网 时间:2024/05/24 06:35
- 编写一个 Application 并定义一个异常类,要求完成如下操作。定义一个 money 类,包括:
存款余额:成员变量 yu;
存款操作:方法 putMoney(double money)
取款操作:方法 getMoney(double money)
获取余额:方法 getYu()
如果存款余额小于取款额时,显示当前余额,并告之不能取款,否则显示取款成功的信息。
public class Exercise { public static void main(String[] args) { Money money = new Money(); money.putMoney(1000); try { money.getMoney(500); } catch (MoneyException e) { System.out.println("当前余额为:" + money.getYu() + " 不能取款"); } }}class MoneyException extends Exception { MoneyException() { }}class Money { private double yu = 0; public void putMoney(double money) { yu = yu + money; System.out.println("存款成功!"); } public void getMoney(double money) throws MoneyException{ if (!(yu >= money)) throw new MoneyException(); yu = yu - money; System.out.println("取款成功!"); } public double getYu() { return yu; }}
- 实现两个定时器,一个线程每隔 1s 显示一次,一个线程每隔 3s 显示一次。
public class Exercise { public static void main(String[] args) { Thread1 thread1 = new Thread1(); Thread2 thread2 = new Thread2(); thread1.start(); thread2.start(); }}class Thread1 extends Thread { public void run() { while (true) { System.out.println("第一个线程!"); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }}class Thread2 extends Thread { public void run() { while (true) { System.out.println("第二个线程!"); try { sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } }}
- 编写一个类,类名为 MulThread,定义含一个字符串参数的构造方法,并实现 Runnable 接口,接口中的 run() 方法如下实现,方法先在命令行显示该线程信息,然后随机休眠小于 1s 的时间,最后显示线程结束信息:finished + 线程名。编写一个 Application 程序,创建 MulThread 类的 3 个线程对象 t1, t2, t3,并再启动这 3 个线程。
public class Exercise { public static void main(String[] args) { MulThread th1 = new MulThread("th1"); MulThread th2 = new MulThread("th2"); MulThread th3 = new MulThread("th3"); Thread t1 = new Thread(th1); Thread t2 = new Thread(th2); Thread t3 = new Thread(th3); t1.start(); t2.start(); t3.start(); }}class MulThread implements Runnable { private String string; MulThread (String str) { string = str; } public void run() { System.out.println(string); try { Thread.sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Finished " + string); }}
- 设计一个窗口,内含一个按钮。开始运行时,按钮显示 “click me !” 字样,但按下按钮时,按钮上面的文字变成 “click me again !”,再按一次,则会变成 “click me !”。如此循环。
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class Exercise { public static void main(String[] args) { new Windows(); }}class Windows extends JFrame { JButton button; public Windows(){ button = new JButton("Click Me"); this.add(button); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { if(button.getText().equals("Click Me")){ button.setText("Click Me Again"); } else button.setText("Click Me"); } }); this.setVisible(true); this.setBounds(50,50,200,150); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
- 编写一个应用程序,设计 4 个按钮,分别明明 “加”,“减”,“乘”,“除”;有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。
import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;public class Exercise { public static void main(String[] args) { new Calculaor(); }}class Calculaor implements ActionListener{ private JButton jb1,jb2,jb3,jb4; private JTextField jt1,jt2,jt3; private JFrame jf; private Box box1,box2,basebox; public Calculaor(){ jf=new JFrame("简单计算器"); jf.setBounds(300, 300, 440, 130); jf.setVisible(true); jf.setLayout(new FlowLayout()); jb1 = new JButton("加"); jb2 = new JButton("减"); jb3 = new JButton("乘"); jb4 = new JButton("除"); jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); jb4.addActionListener(this); jt1 = new JTextField(" "); jt2 = new JTextField(" "); jt3 = new JTextField(" "); Dimension dim = new Dimension(100, 20); Dimension dim2 = new Dimension(180, 20); jt1.setPreferredSize(dim); jt2.setPreferredSize(dim); jt3.setPreferredSize(dim2); jt3.setEditable(false); jt3.setBackground(Color.gray); box1 = Box.createHorizontalBox(); box1.add(jt1); box1.add(Box.createHorizontalStrut(10)); box1.add(jt2); box1.add(Box.createHorizontalStrut(10)); box1.add(jt3); box2 = Box.createHorizontalBox(); box2.add(jb1); box2.add(Box.createHorizontalStrut(10)); box2.add(jb2); box2.add(Box.createHorizontalStrut(10)); box2.add(jb3); box2.add(Box.createHorizontalStrut(10)); box2.add(jb4); basebox = Box.createVerticalBox(); basebox.add(box1); basebox.add(Box.createVerticalStrut(10)); basebox.add(box2); jf.add(basebox); jf.validate(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { String temp1 = jt1.getText().trim(); String temp2 = jt2.getText().trim(); if(temp1.equals("")||temp2.equals("")){ JOptionPane.showMessageDialog(jf,"文本框不能为空。"); }else{ double a = 0, b = 0; try{ a = Double.parseDouble(temp1); b = Double.parseDouble(temp2); }catch(Exception e1){ JOptionPane.showMessageDialog(jf,"您输入了非法字符,请输入正确的数字。"); return; } if(e.getSource() == jb1){ jt3.setText(""+(a + b)); System.out.println("" + (a + b)); }else if(e.getSource() == jb2){ jt3.setText("" + (a - b)); }else if(e.getSource() == jb3){ jt3.setText("" + (a * b)); }else if(e.getSource() == jb4){ jt3.setText("" + (a / b)); } } }}
- 编写一个图形用户界面的应用程序,包括两个文本框和一个按钮,当单击按钮时,可以把一个文本框中的内容复制到另一个文本框中。
import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Exercise { public static void main(String[] args) { new Windows(); }}class Windows extends JFrame { JButton button = new JButton("Add"); JTextField textField1 = new JTextField(30); JTextField textField2 = new JTextField(30); public Windows() { Container app = this.getContentPane(); BoxLayout boxLayout = new BoxLayout(app, BoxLayout.X_AXIS); setLayout(boxLayout); add(textField1); JPanel panel = new JPanel(); panel.add(button); add(panel); add(textField2); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { if (textField1.getText().length() > 0) { textField2.setText(textField2.getText() + textField1.getText() + "\n"); textField1.setText(""); } } }); setVisible(true); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
- 编写一个应用程序,要求有一个含有菜单的窗口,窗口中有文本区组件。菜单有 “打开文件” 的菜单项,当单击菜单项时,使用输入流将一个名为 “hello.txt” 文件的内容读入到文本区。
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.*;public class Exercise { public static void main(String[] args) throws IOException{ File file = new File("hello.txt"); FileOutputStream out = new FileOutputStream(file); String st = new String("This is a string of characters!"); byte[] bytes = st.getBytes("UTF-8"); out.write(bytes); out.flush(); out.close(); new Window(); }}class Window extends JFrame { JTextArea textArea = new JTextArea(20, 30); public Window() throws IOException{ setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); JMenuBar menuBar = new JMenuBar(); JButton openFile = new JButton("Open File"); menuBar.add(openFile); add(menuBar); add(textArea); openFile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { File file = new File("hello.txt"); FileInputStream in = null; try { in = new FileInputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } byte[] bytes = new byte[1024]; try { while (in.read(bytes) != -1) { textArea.setText(new String(bytes)); } } catch (IOException e) { e.printStackTrace(); } try { in.close(); } catch (IOException e) { e.printStackTrace(); } } }); setVisible(true); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
阅读全文
1 0
- java 练习题
- JAVA练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- java练习题
- Java练习题
- java练习题
- java练习题
- java练习题
- JAVA练习题
- Java练习题
- java 练习题
- java练习题
- wkhtmltopdf 中文参数详解
- ajax 文件上传
- Shell Programming(一)——重定向与管道
- Edittext光标移到最后
- 精彩博客
- Java 练习题
- 免费的论文查重网站
- QT组播实现多人屏幕共享的程序
- Android开发必备的一些网址
- 链表的常见实现
- 链表的常见实现
- wordpress后台多媒体管理插件
- WPF 如何在后台进行控件属性的绑定MVVM
- scala中模式匹配中的@代表什么意思