本文目录一览:
Java代码修改
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.util.Random;
import javax.swing.JFrame;
class RainCanvas extends Canvas implements Runnable{
private int width, height;
private Image offScreen; // 缓冲图片
private char[][] charset; // 随机字符集合
private int[] pos; // 列的起始位置
private Color[] colors = new Color[25]; // 列的渐变颜色
public RainCanvas(int width, int height) {
this.width = width;
this.height = height;
// 生成ASCII可见字符集合
//创建一个新的随机器
Random rand = new Random();
//width/10为字符雨屏幕的宽度 height/10为字符雨屏幕的长度
//随机字符数组
charset = new char[width / 10][height / 10];
for (int i = 0; i charset.length; i++) {
for (int j = 0; j charset[i].length; j++) {
//nextInt(int n) 返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
//48--144代表键盘上的字母 符号 数字
//为charset数组的每个元素取值
charset[i][j] = (char) (rand.nextInt(96) + 48); }
}
// 随机化列起始位置
pos = new int[charset.length];
for (int i = 0; i pos.length; i++) {
pos[i] = rand.nextInt(pos.length);
}
// 生成从黑色到绿色的渐变颜色,最后一个保持为白色
for (int i = 0; i colors.length - 1; i++) {
//颜色渐变
colors[i] = new Color(0, 255 / colors.length * (i + 1), 0); }
//设置最底下一个的字符的颜色 0 0 255 蓝色 255 0 0 红色 255 255 255 白色 0 255 0 绿色
colors[colors.length - 1] = new Color(0, 0, 255);
setBackground(Color.black);
setSize(width, height);
setVisible(true);
}
public void startRain() {
new Thread(this).start();
}
public void drawRain() {
if (offScreen == null) {
return;
}
// Random rand = new Random();
//getGraphice()创建供绘制闭屏图像使用的图形上下文
Graphics g = offScreen.getGraphics();
//通过使用当前绘图表面的背景色进行填充来清除指定的矩形。
g.clearRect(0, 0, width, height);
//将此图形上下文的字体设置为指定字体。使用此图形上下文的所有后续文本操作均使用此字体。
g.setFont(new Font("Arial", Font.PLAIN, 14));
//
for (int i = 0; i charset.length; i++) {
//int speed = rand.nextInt(3);
for (int j = 0; j colors.length; j++) {
//去掉j只显示蓝色的一个字符 去掉charset[i].length显示黑屏
int index = (pos[i] + j) % charset[i].length;
// 将此图形上下文的当前颜色设置为指定颜色。
g.setColor(colors[j]);
//使用此图形上下文的当前字体和颜色绘制由指定字符数组给定的文本
g.drawChars(charset[i], index, 1, i * 10, index * 10);
}
pos[i] = (pos[i]+2 ) % charset[i].length;
}
}
@Override
public void update(Graphics g) {
paint(g);
}
public void run() {
while (true) {
drawRain();
repaint();
try {
Thread.sleep(50); // 可改变睡眠时间以调节速度
}
catch (InterruptedException e) {
System.out.println(e);
}
}
}
@Override
public void paint(Graphics g) {
// 当组件显示时检测是否要创建缓冲图片,在组件还不可见时调用createImage将返回null
if (offScreen == null) {
offScreen = createImage(width, height);
}
g.drawImage(offScreen, 0, 0, this);
}
}
public class ZFYTest extends JFrame{
private RainCanvas canvas = new RainCanvas(1366, 768);
public ZFYTest() {
super("ZFY");
setUndecorated(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
canvas = new RainCanvas(this.getWidth(), this.getHeight()); //canvas = new RainCanvas(800,600);
getContentPane().add(canvas);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
ZFYTest test = new ZFYTest();
test.canvas.startRain();
}
}
java修改文件后缀名
以下程序实现的功能是批量修改文件后缀:
import java.io.*;
/**
* JAVA实现的批量更改文件后缀名的程序。
*
* @author rommnn
*/
public class ExtBatchRename {
/**
* 修改程序。br
* 内部递归调用,进行子目录的更名
*
* @param path
* 路径
* @param from
* 原始的后缀名,包括那个(.点)
* @param to
* 改名的后缀,也包括那个(.点)
*/
public void reName(String path, String from, String to) {
File f = new File(path);
File[] fs = f.listFiles();
for (int i = 0; i fs.length; ++i) {
File f2 = fs[i];
if (f2.isDirectory()) {
reName(f2.getPath(), from, to);
} else {
String name = f2.getName();
if (name.endsWith(from)) {
f2.renameTo(new File(f2.getParent() + "/" + name.substring(0, name.indexOf(from)) + to));
}
}
}
}
public static void main(String[] args) {
ExtBatchRename rf = new ExtBatchRename();
rf.reName("d:/", ".jsp", ".html");
}
}
JAVA程序修改
首先,你错误的地方呢,就是你的for循环没有做好,for()后处理一个简单语句或一个复合语句。简单语句以“;”结尾,复合语句就是在括号内的语句集合了。你的for循环在没结束前就有一个分号。而之后的x[i]=a+i并不会循环。
废话不说了,给你解释下为什么你产生了这个错误:
int x[]=new int[101];
定义包含101个int变量的数组,最大下标为100
for(i=0;i=100;i++);
x[i]=a+i;
先说你循环体什么时候会停止执行呢?就是i不符合i=100既i=101时循环跳出。那么这时你本该在循环体内的x[i]=a+i再一次使用了i,很明显x的下标越界了.所以弹出了java.lang.ArrayIndexOutOfBoundsException数组下标越界异常。
另外,你的程序本身有最大的问题你没有考虑到int变量的取值范围,这种数据跟一个数到加100这101个数的最小公倍数根本就不是一个数量级的。这要用到大数import java.math.BigInteger。照例代码贴上:
———————————————Maina.java————————————-----
import java.util.Scanner;
import java.math.BigInteger;
public class Maina {
public static BigInteger gcd(BigInteger x, int y) {
BigInteger m=x;
BigInteger n=new BigInteger(new Integer(y).toString());
//调用使用String类型的构造方法BigInteger(String val),
//这里 使用int的包装类Integer将int变量转型为Sting。
while (true) {
if ((m = m.divideAndRemainder(n)[1]).intValue() == 0)
/*
* m.divideAndRemainder(n)此方法返回一个包含2个BigInteger元
*素的数组,m.divideAndRemainder(n)[0]为商,
* m.divideAndRemainder(n)[1]为余数。
* m.divideAndRemainder(n)[1]).intValue()调用 BigInteger.intValue()将大数转为int类型变量。
*/
return x.multiply(new BigInteger(new Integer(y).toString())).divide(n);
//也就是 x*y/n;
if ((n = n.divideAndRemainder(m)[1]).intValue() == 0)
return x.multiply(new BigInteger(new Integer(y).toString())).divide(m);
}
}
public static void main(String args[])
{
int i,j,t;
BigInteger c;
Scanner cin = new Scanner(System.in);
int a = cin.nextInt();
int x[]=new int[101];
for(i=0;ix.length;i++)
x[i]=a+i;
c=new BigInteger(new Integer(x[0]).toString());//只是为gcd方法传参作准备
for(j=0;jx.length;j++)//由于是求最小公倍数j=0和j=1的效果是一样的。
c=gcd(c,x[j]);
System.out.println("最小公倍数:" + c);
}
}
————————————有问题联系我百度空间留言或hi即可——————
Java 要实现此功能 代码应该如何修改?
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:taian", "hr", "hr"); //连接Oracle
conn.setAutoCommit(false);
Statement myStat = conn.createStatement();
String sqlTxt = "update BankAccount set account=account-" + this.amount.getText() + " where accId=" + this.payOut.getText();
System.out.println("第一步 执行:" + sqlTxt);
//
try {
int affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("从汇出方扣减" + this.amount.getText() + "元,修改了" + affectedRow + "行数据.");
sqlTxt = "update BankAccount set account=account+" + this.amount.getText() + " where accId=" + this.saveIn.getText();
System.out.println("第二步 执行:" + sqlTxt);
affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("从汇入方增加" + this.amount.getText() + "元,修改了" + affectedRow + "行数据.");
// 事务成功结束, 提交
conn.commit();
} catch (SQLException sqlEx) {
System.out.println
sqlEx.printStackTrace();
// 事务中断,整体回滚到事务开始前状态
conn.rollback();
}
myStat.close();
conn.close();
} catch (Exception ex) {
System.out.println("反正是出错了.");
}
}//
Java-方法-程序修改
void isPrime() {
Scanner scan = new Scanner(System.in);
System.out.print("input a and b:");
int a = scan.nextInt(), b = scan.nextInt(), temp;
for(temp = a * b;a % b != 0;a += b,b = (a - (a = b)) % b);
System.out.println("ouput:" + (temp / b));
}
void isPrime_() {
Scanner scan = new Scanner(System.in);
System.out.print("input a and b:");
int a = scan.nextInt(), b = scan.nextInt();
for(;a % b != 0;a += b,b = (a - (a = b)) % b);
System.out.println("ouput:" + b);
}
核心代码就一行,功能和你的一样,望采纳
java怎么修改文件名称
一般的操作:
File file=new File("word.txt");
String filename=new String("word1.txt");//更改后的文件名
file.renameTo(filename);//更改文件名操作
判断是否已经更改文件名:
File file=new File("word.txt");
String filename=new String("word1.txt);
if(file.renameTo(filename)){
System.out.println("修改文件名成功");
}else{
System.out.println("修改文件名失败");
}
file是更改文件名之前的文件,可以为绝对路径或相对路径:
绝对路径可表示为:File file=new File("D:/word.txt");
相对路径的根文件夹与src文件夹同级,如File file=new File("worddir/word.txt");中的worddir文件夹与src同级
filename是更改文件名之后的文件的文件名(包含后缀)