java java初学者项目问题

我是的初学者,在学习过程中遇到了些问题,这里有个 小应用程序 想要增加个功能,设置一个选项,可以设置画笔的粗细,我想对高手而言是非常简单的事情,所以请帮帮忙!
import java.applet.*;
import
t.*;
import
t.event.*;
public class Lizi18_5 extends Applet
implements ActionListener,MouseMotionListener
{
int x=-1,y=-1,橡皮擦通知=0,清除通知=0;
Color c=new Color(255
我是的初学者,在学习过程中遇到了些问题,这里有个 小应用程序 想要增加个功能,设置一个选项,可以设置画笔的粗细,我想对高手而言是非常简单的事情,所以请帮帮忙!
import java.applet.*;
import
t.*;
import
t.event.*;
public class Lizi18_5 extends Applet
implements ActionListener,MouseMotionListener
{
int x=-1,y=-1,橡皮擦通知=0,清除通知=0;
Color c=new Color(255,0,0);
int con=3;
Button b_red,b_blue,b_green,清除,b_
public void init()
addMouseMotionListener(this);
b_red=new Button("画红色图形");
b_blue=new Button("兰色图形");
b_green=new Button("画绿色图形");
b_quit=new Button("橡皮");
清除=new Button("清除");
add(b_red);
add(b_green);
add(b_blue);
add(b_quit);
add(清除);
b_ dActionListener(this);
b_ dActionListener(this);
b_ dActionListener(this);
b_ dActionListener(this);
清除.addActionListener(this);
public void paint(Graphics g)
if(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
tColor(c);
llOval(x,y,con,con);
else if(橡皮擦通知==1&&清除通知==0)
earRect(x,y,10,10);
else if(清除通知==1&&橡皮擦通知==0)
earRect(0,0,getSize().width,getSize().height);
public void mouseDragged(MouseEvent e)
x=(int) tX();
y=(int) tY();
repaint();
public void mouseMoved(MouseEvent e){ }
public void update(Graphics g)
public void actionPerformed(ActionEvent e)
if( tSource()==b_red)
橡皮擦通知=0;清除通知=0; c=new Color(255,0,0);
else if( tSource()==b_green)
橡皮擦通知=0;清除通知=0;
c=new Color(0,255,0);
else if( tSource()==b_blue)
橡皮擦通知=0;清除通知=0; c=new Color(0,0,255);
if( tSource()==b_quit)
橡皮擦通知=1;清除通知=0 ;
if( tSource()==清除)
清除通知=1; 橡皮擦通知=0;repaint();
import 相关信息.applet.*;
import
t.*;
import
t.event.*;
public class Lizi18_5 extends Applet implements ActionListener, MouseMotionListener {
int x = -1, y = -1, 橡皮擦通知 = 0, 清除通知 = 0;
Color c = new Color(255, 0, 0);
int con = 3;
Button b_red, b_blue, b_green, 清除, b_quit, inc,
public void init() {
addMouseMotionListener(this);
b_red = new Button("画红色图形");
b_blue = new Button("兰色图形");
b_green = new Button("画绿色图形");
import 相关信息.applet.*;
import
t.*;
import
t.event.*;
public class Lizi18_5 extends Applet implements ActionListener, MouseMotionListener {
int x = -1, y = -1, 橡皮擦通知 = 0, 清除通知 = 0;
Color c = new Color(255, 0, 0);
int con = 3;
Button b_red, b_blue, b_green, 清除, b_quit, inc,
public void init() {
addMouseMotionListener(this);
b_red = new Button("画红色图形");
b_blue = new Button("兰色图形");
b_green = new Button("画绿色图形");
b_quit = new Button("橡皮");
清除 = new Button("清除");
inc = new Button("加粗");
dec = new Button("变细");
add(b_red);
add(b_green);
add(b_blue);
add(b_quit);
add(清除);
b_ dActionListener(this);
b_ dActionListener(this);
b_ dActionListener(this);
b_ dActionListener(this);
清除.addActionListener(this);
dActionListener(this);
dActionListener(this);
public void paint(Graphics g) {
if (x != -1 && y != -1 && 橡皮擦通知 == 0 && 清除通知 == 0) {
tColor(c);
llOval(x, y, con, con);
} else if (橡皮擦通知 == 1 && 清除通知 == 0) {
earRect(x, y, 10, 10);
} else if (清除通知 == 1 && 橡皮擦通知 == 0) {
earRect(0, 0, getSize().width, getSize().height);
public void mouseDragged(MouseEvent e) {
repaint();
public void mouseMoved(MouseEvent e) {
public void update(Graphics g) {
public void actionPerformed(ActionEvent e) {
if ( tSource() == b_red) {
橡皮擦通知 = 0;
清除通知 = 0;
c = new Color(255, 0, 0);
} else if ( tSource() == b_green) {
橡皮擦通知 = 0;
清除通知 = 0;
c = new Color(0, 255, 0);
} else if ( tSource() == b_blue) {
橡皮擦通知 = 0;
清除通知 = 0;
c = new Color(0, 0, 255);
if ( tSource() == b_quit) {
橡皮擦通知 = 1;
清除通知 = 0;
if ( tSource() == 清除) {
清除通知 = 1;
橡皮擦通知 = 0;
repaint();
if ( tSource() == inc) {
if(con == 19)
tEnabled(false);
tEnabled(true);
if ( tSource() == dec) {
if(con == 1)
tEnabled(false);
tEnabled(true);
在你的代码基础上改了下,增加了“加粗”和“变细”按钮来控制画笔的粗细,应该可以满足你的要求~
其他答案(共1个回答)
说明: 参阅csdn社区 还有很多知识 很好的一个编程网站!
建议你用eclipse,他能提示你很多代码和信息。
比如 intln
只需要写Sy然后按下Alt和/的组合键就出现提示。操作必将方便。
对于括号问题,...
嗯,进入cmd 查看一下你的version版本,看看是不是最新的啊,如果是那就没有什么问题了,还有一个很重要的是你在安装软件时千万要关闭防火墙,如果你没有关闭你...
java中的变量可以在使用的时候再声明并初始化,可以在代码的任何位置,不必像C一样要在程序的开头声明!而前一种情况就是直接量.
常量就是引用不...
public class HelloWorld {
public static void main(String[] args) {
intln("H...
你在删除输入法软件的,可能背单词的文件和输入法的软件相似,然后系统默认把把他也删除了,所以建议以后装软件的时候,每个软件都装在一个单独的文件夹里,然后把这些文件...
求教,从捷克波希米亚森林(Sumava)怎么去法兰克福呢?
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区Java初学者的30个常见问题【】-360文档中心
360文档中心免费免积分下载,各行业
知识、技术、信息等word文档下载网站
Java初学者的30个常见问题【】
本文回答了30个Java入门级初学者的常见问题。 我可以用%除以一个小数吗? a += b 和 a = a + b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么Java库不用随机pivot方式的快速排序?
1.2 基本数据类型
Q. 为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?(注意后边的结果0带负号)
A. 在Java里,整数是用补码表示的。在补码中0只有一种表示方法。另一方面,浮点数则是用 IEEE 标准表示的, 对于0有两种表示方法, 0 和 -0。 Q. 我可以用 % 除以一个小数吗?
A. 当然可以。比如,如果 angle 是一个非负数,那么 angle % (2 * Math.PI) 就会把 angle 转换到 0 到 2 π 之间。
Q. 当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗?
A. 当 a 和 b 的类型不同时,那两条语句的效果就可能有区别。 a += b 等同于 a = (int) (a + b),这种情况下可以是 a是int型,b是float型。但是同等情况下 a = a + b 就会编译报错。
1.3 条件语句和循环语句
Q. 为什么判断字符串相等不能使用 == ?
A. 这反映了基础类型(int, double, boolean)和引用类型(String)的区别。 Q. 有没有在什么情况下,一条语句块的花括号不能省略的?
A. 在下面的例子中,第一段代码是合法的,第二段代码会引发编译错误。从技术角度说,那一条语句是一个变量声明,而不是语句,所以会报错。
1. // legal
2. for (int i = 0; i <= N; i++) {
int x = 5;
6. // illegal
7. for (int i = 0; i <= N; i++)
int x = 5;
Q. 在下面的两段代码里,有没有情况,它们的效果不一样?
1. for ( ; ) {
免费下载该文档:
Java初学者的30个常见问题【】的相关文档搜索
Java初学者的30个常见问题【】_计算机软件及应用_IT/计算机_专业资料。本文回答了 30 个 Java 入门级初学者的常见问题。 我可以用%除以一个小数吗? a += b ...Java初学者的30个常见问题_计算机软件及应用_IT/计算机_专业资料。 Java 初学者的 30 个常见问题本文回答了30个Java入门级初学者的常见问题。 我...java新手入门必看的30个问题_IT/计算机_专业资料。新手入门必看的30个问题 新手入门必看的30个问题 新手入门必看的 个问题!!! 个问题阅读次数: 6849次 发布时间:...{ return 0; } //错误, 重写父类方法,不能降低了访问权限 //private long...Java初学者的30个常见问... 暂无评价 7页 1下载券
java中常见问题 7页 1...Java初学者常见错误_计算机软件及应用_IT/计算机_专业资料。常见错误 Java 程序需要经过编译,才能运行。 因此 Java 的错误分成 2 类: 1、编译时的错误 2、运行...成都JAVA培训中心
美国上市公司 · 亿元级外企Java培训企业
课程咨询 :
java初学者基础问题及答案汇总
1.什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事?
答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Softw are Develop Kit)。
2.什么是JRE/J2RE?
答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。
如果你只需要运行Java程序或Applet,下载并安装它即可。
如果你要自行开发Java软件,请下载JDK。在JDK中附带有J2RE。
注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个J2RE或JDK。
3.学习Java用什么工具比较好?
答:作者建议首先使用JDK+文本编辑器,这有助你理解下列几个基础概念:path,classpath,package 并熟悉基本命令:javac和java。并且下载和你的JDK版本一致的API帮助。如果你不确定类或函数的用法,请先查阅API而不是发贴求助。
当你熟悉Java之后,你可以考虑换一个IDE。很多人推荐JCreator,实际上JCreator的功能还是很弱的。 作者推荐eclipse,下载网址:http://www.eclipse.org 因eclispe是免费的。
4.学习Java有哪些好的参考书?
答:作者首先推荐Thinking in Java,中文名《Java编程思想》,有中文版。
该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。
除此以外,O′relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。
也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅API,而那也是英文的。
5.Java和C++哪个更好?
答:这个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目?
如果你不需要跨平台,不需要分布式,要强调程序的运行速度,C++更为适用。
反之?你应当考虑Java。
6.什么是J2SE/J2EE/J2ME?
答:J2SE就是一般的Java。
J2ME是针对嵌入式设备的,比如Java手机,它有自己的SDK。而J2EE使用J2SE的SDK。
J2EE规范更多的是对J2EE服务器的要求和开发人员的约束。2命令篇
1.我写了第一个Java程序,应该如何编译/运行?
答:首先请将程序保存为xxx.java文件,
然后在dos窗口下使用javac xxx.java命令,你会发现该目录下多了一个xxx.class文件,
再使用java xxx命令,你的java程序就开始运行了。
2.我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。"
答:你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe,但是没能找到。
请编辑你的操作系统环境变量,新增一个JAVA_HOME变量,设为你JDK的安装目录,
再编辑Path变量,加上一项 %JAVA_HOME% /bin。
然后关掉并新开一个dos窗口,你就可以使用javac和java命令了。
3.javac xxx.java顺利通过了,但是java xxx的时候显示什么"NoClassDefFoundError"?
答:你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你要用的
class文件,但是未能找到。
首先请确认你没有错敲成java xxx.class,
其次,检查你的CLASSPATH环境变量,如果你设置了该变量又没有包含.(代表当前目录)的
你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项。另外参见8。
4.我在java xxx的时候显示"Exception in thread "main" java.lang.NoSuchMethodError: main"。
答:首先,在你的程序中每个java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个public static void main(String[] args)方
法,这个方法就是你的主程序。
5.package是什么意思?怎么用?
答:为了唯一标识每个类并分组,java使用了package的概念。
每个类都有一个全名,例如String的全名是java.lang.String,其中java.lang是包名,String是短名。
这样,如果你也定义了String,你可以把它放在mypackage中,通过使用全名mypackage.String和java.lang.String来区分这两个类。同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在java文件开头加一行""。
注意包没有嵌套或包含关系,A包和A.B包对java命令来说是并列的两个包
6.我没有声明任何package会怎么样?
答:你的类被认为放在默认包中。这时全名和短名是一致的。
7.在一个类中怎么使用其他类?
答:如果你使用java.lang包中的类,不用做任何事。
如果你使用其他包中的类,使用import package1.class1; 或 import package2.*;
这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。
如果短名有冲突,使用全名来区分。
8.我用了package的时候显示"NoClassDefFoundError",但是我把所有package去掉的时候能正常运行。
答:将你的java文件按包名存放。
比如你的工作目录是/work,你的类是package1.class1,那么将它存放为/work/package1/class1.java。
如果没有声明包,那么直接放在/work下。
在/work下执行javac package1/class1.java,再执行java package1.class1,你会发现一切正常。
另外,你可以考虑开始使用IDE。
9.我想把java编译成exe文件,该怎么做?
答:JDK只能将java源文件编译为class文件。
class文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨平台性
有些开发工具可以将java文件编译为exe文件。作者反对这种做法,因为这样就取消了跨平台性。
如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。
10.我在编译的时候遇到什么"deprecated API",是什么意思?
所谓deprecated是指已经过时,但是为了向前兼容起见仍然保留的方法 这些方法可能会在以后取消支持。你应当改用较新的方法。
一般在API里面会说明你应当用什么方法来代替之。3I/O篇
1.我怎么给java程序加启动参数,就像dir /p/w那样?
答:还记得public static void main(String[] args)吗?这里的args就是你的启动参数。
在运行时你输入java package1.class1 -arg1 -arg2,args中就会有两个String,一个是arg1,另一个是arg2。
2.我怎么从键盘输入一个int/double/字符串?
答:java的I/O操作比C++要复杂一点。如果要从键盘输入,样例代码如下:
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in));
String s = cin.readLine();
这样你就获得了一个字符串,如果你需要数字的话再加上:
int n = Integer.parseInt( s ) ; 或者 double d = Double.parseDouble( s ) ;
3.我怎么输出一个int/double/字符串?
答:在程序开始写:
PrintWriter cout = new PrintWriter( System.out ) ;
需要时写:
cout.print(n); 或者cout.println("hello") ; 等等。
4.我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。
答:java使用unicode,是双字节。而System.in和System.out是单字节的stream。
如果你要输入输出双字节文字比如中文,请使用作者的做法。
5.我怎么从文件输入一个int/double/字符串?
答:类似于从键盘输入,只不过换成
BufferedReader fin = new BufferedReader( new FileReader(" myFileName ") ) ;
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName ") ) ;
另外如果你还没下载API,请开始下载并阅读java.io包中的内容。
6.我想读写文件的指定位置,该怎么办?
答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。
7.怎么判断要读的文件已经到了尽头?
你肯定没有认真看API。在Reaer的read方法中明确说明返回-1表示流的结尾。
最新开班日期 &|
Java--零基础全日制班
开班日期:6月30
Java--零基础周末班
开班日期:6月30
Java--大数据全日制班
开班日期:6月30
Java--大数据周末班
开班日期:6月30
达内新闻 &|
达内时代科技集团有限公司 版权所有 京ICP证8000853号-565.一个关于Java初学者的问题
5.一个关于Java初学者的问题
自动类型转换从低到高优先次序是:
byte,short,char--&int--&long--&float--&double
占位:8 16 16 32 64 ? ?
问题:float、double类型数据在内存中的占位分别是多少?若是int与float、long与double在内存中的占位相同,那为何从低到高优先次序是按上面的规定?
float 32位,double 64位!
int ,float ,double在内存中怎么可能占相同的位呢?在声明变量的时候,虚拟机就会按照类型分配相应的内存,这个是固定的!
至于转换问题,有两种:一种是自动转换,一种是强制转换!
可以这样去理解,比如一个int和一个double相加的结果给一个double型,这就不用去强制转换,因为double 64位,int才32,所以它可以容纳一个int,int会自动提升为double类型!如果结果给int,那么就要显示的转换,也就是强制转换!
请遵守网上公德,勿发布广告信息
相关问答:14条忠告:Java初学者应该注意哪些问题?
作为一门语言的初学者来说,免不了会走一段弯路,会有偶尔性的纠结时光,Java这门已经进入中国23年的互联网编程语言,因其面向对象性的、分布式的、可移植的的特点备受广大银行和公司的喜爱。面对近期Java语言重新转热的趋势,特意整理了Java大牛们对于Java初学者的一些忠告。以下14条忠告告诫Java初学者应该注意的那些问题。
1) 适合自己的图书才是最好的,最好的书并不一定适合你,看自己的情况。
如果一个Java初学者一上手就捧一本《Thinking in Java》在手里,我想他的日子是不会好过的。那样的书是给有一定基础的人看的,当工具书使用的,当然有一定基础后,可以跟着上边流程学,如果你能学下来,那么你的基础就不用说了。
2) 看书要用心,多动脑,实践很重要,要抱着怀疑的态度看书。
再好的书也可能会出现错误,人非圣人嘛!多多练习这很重要,如果光看不练,过了几天就会忘的差不多了!
3) 遇到问题多查帮助文档,还可以上网站进行搜索。
现如今的搜索引擎功能十分强大,只要你能用得到就能搜到的,还担心什么。不要碰到一点什么问题,都去烦别人,这样别人会小瞧你的!可以加一些Java交流群,对于初学者可能会有一些作用,如果你已经是高手了,可能这样的群对你的提高不会很大。
4) 忌讳急功近利,越急就越容易走弯路。
不要急,基础虽然很简单,一个月或半年,甚至是一年,这都很正常。但出来的成效绝对是不一样的,相信你的时间不会白白浪费。
5) 我们要精而非全,语言都是相通的。
学精一门语言再转其它语言也会容易的多。基础很重要,不要贪高。如果你精通C++,改学Java还不简单,思想你已经掌握,你要学的就是一点语法,这还不容易?
6) 欣赏他人的代码
初学者不要看,因为理解别人的思路原比自己写要困难的多。认为自己的基础到了一定的程度,可以看看一些开源的软件,因为那都是一些优秀的杰作,会对提高你的水平有很大帮助。(注意方法:先找主线——&从界面入手——&在纸上画出结构图——&然后再分步分析)
7) 在实践中提高自己的能力
边学边练,买一些带实例的书,可以试着做一些日常生活中常用到的小程序,只有在实践中你才会发现更多的问题。
8) 培养自己发现、思考、解决问题的能力。
能自己想办法解决,不求别人!对于初学者很重要。
9) 心态要平衡,不要总觉得高人一等。
一个事物的存在总有它的合理性。你的技术比别人牛,这没什么,或许你是学的早,也或许你比别人反应快一点,永远不要自大,计算机是技术更新很快的行业,你不会永远都站在别人的前头的。心态平衡,不断学习,这才是王道!
10) 可以下载视频,买书,借书,在线观看。
如果你是大学生,那么不要浪费资源,一头扎头图书馆里吧。现在网络资源,网上的视频和电子书极多,还愁找不到资源吗?
11) 认证的价值不大,在一些企业还不是特殊认可,没必要花费大的精力去考。
12) 找工作,基础扎实,有一年开发经验,不用担心。你可能会有6K左右的工资了。
13) 做开发不一定要数学好,只不过你不适合做算法方面的工作。(能当程序员的,谁都不白痴,呵呵!)
14) 没有什么捷径,如果有的话,价值也就不大了。
别梦想一步登天,给自己作一个学习过程计划,先学什么,后学什么,合理一点。如果非要说有什么捷径的话,我认为培训不错,条件允许的话,这可以省掉你很多的宝贵时间,当然选择培训机构的时候一定要慎重。因为那不光是Money的问题。蓝鸥的大数据(java)课程体系,零基础开始学习,分为5个大的阶段,课程由浅入深,循序渐进。采用双师授课方式,授课老师VCR讲解+技术讲师辅导实时练习。优势:确保最好的老师把技术讲解透彻,同时立即进入练习,技术老师再次讲解及辅导,立即吸收消化知识点。进度技术讲师可以根据学员吸收情况控制,确保学习效果。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
学开发 敲代码 轻轻松松收入过万
热爱编程的你,机会只此一次哦~~}

我要回帖

更多关于 java初学者教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信