按照你的要求编写的Java程序如下:
import javaawtGraphics;import javaawteventMouseEvent;
import javaawteventMouseMotionListener;
import javaxswingJFrame;
import javaxswingJPanel;
public class FFF extends JFrame {
//鼠标位置
int x=0;
int y=0;
//眼球半径
int radius=60;
//眼点半径
int smallradius=15;
//眼点边距眼球边距离
int gap=5;
//左眼球中心位置
int centerx1=200;
int centery1=200;
//右眼球中心位置
int centerx2=400;
int centery2=200;
MyPanel mp=new MyPanel();
FFF(){
getContentPane()add(mp);
setSize(600, 600);
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args){
new FFF();
}
class MyPanel extends JPanel implements MouseMotionListener{
MyPanel(){
addMouseMotionListener(this);
}
public void paint(Graphics g){
superpaint(g);
//画左眼球
gdrawOval(centerx1-radius, centery1-radius, 2radius, 2radius);
//画右眼球
gdrawOval(centerx2-radius, centery2-radius, 2radius, 2radius);
//鼠标距左眼中心距离
double longside1=Mathsqrt((y-centery1)(y-centery1)+(x-centerx1)(x-centerx1));
//鼠标距右眼中心距离
double longside2=Mathsqrt((y-centery2)(y-centery2)+(x-centerx2)(x-centerx2));
//左眼点中心
int smallcenterx1=centerx1+(int)((radius-gap-smallradius)Mathsin((x-centerx1)/longside1));
int smallcentery1=centery1+(int)((radius-gap-smallradius)Mathsin((y-centery1)/longside1));
//右眼点中心
int smallcenterx2=centerx2+(int)((radius-gap-smallradius)Mathsin((x-centerx2)/longside2));
int smallcentery2=centery2+(int)((radius-gap-smallradius)Mathsin((y-centery2)/longside2));
//画左眼点
gfillOval(smallcenterx1-smallradius, smallcentery1-smallradius, 2smallradius, 2smallradius);
//画右眼点
gfillOval(smallcenterx2-smallradius, smallcentery2-smallradius, 2smallradius, 2smallradius);
}
@Override
public void mouseDragged(MouseEvent me) {}
@Override
public void mouseMoved(MouseEvent me) {
x=megetX();
y=megetY();
repaint();
}
}
}
运行结果:
这个问题对于学习了JAVA的学员们或者从事这方面工作的人来说,是个入行的问题。所以我们要重视这个问题。大部分学习java的人都把基础的知识给忽略掉了,其实基础的知识点尤为重要。
怎么样才能夯实基础呢?我们可以从以下几个方面来讨论:一、掌握SE基础知识其实对于入门来说,首先是要找到学习java的感觉,如果我们刚开始学java时采用直接看书的形式,很多时候都是懵逼的,建议初学者第一次学java一定要尽量找线下面授的课程,或者通过看视频进行学习,然后最重要的是进行实 *** 练习。理论结合实践,才能融会贯通!
那现在疫情很多线下的课程还是没办法正常开售的还是需要自己进行自学,对于视频教程我建议初学者小白可以看看这一套视频——JAVA300集,是B站上免费而且成套的系统教学课程!看了不吃亏看了不上当呀同学们快冲!
二、java WEB进阶小伙伴们对java有了一定的认识,感觉java不再那么抽象。这时我们应该稍微改变一下我们的学习方式。不再以看视频为主,因为看视频更多的是看老师讲课的方法,学习他们思考的方式和解决问题的办法。在这个时候我们可以看JAVA web 进阶的知识。看书是最高效的学习方式,因为一本书是某一方面的专家通过自己多年的经验经过系统的总结写出来的,可以说是作者的精华,因此学习起来效率更高,但前提是你悟性要高,深刻理解作者的意图,而不是看文字的表面意思。
三、框架经过前面两步,进行java开发的核心知识就基本上掌握了。不管多么复杂的java项目其实运用以上两步的知识都可以做出来。但作为程序员,你不得不考虑项目的开发效率以及项目的维护难易程度。可以说无框架的项目应该是运行效率最高的项目,然而实际开发中却是一个项目前前后后换了好多批人进行开发维护,由于个人的开发习惯不同导致项目的代码风格千奇百怪,项目在经过很多次迭代之后已变得千疮百孔,面目全非。
为了解决这些问题,业界就有很多大牛开发出了框架。何为框架?
框架其实就是大牛们把各个项目中都要用到的通用部分抽象出来,形成固定的步骤,经过配置省去这些步骤的编码实现,我们通过配置就可以不再去写这些重复的代码。所以我们可以学习框架来提高编码效率!
四、项目实战掌握了上述的理论和 *** 作,我们就可以尝试自己做项目来检验自己的学习成果。俗话说熟能生巧,不管是在工作中还是自我检验都可以多做项目。这里所说的项目实战不仅仅是让你负责写一个小模块,而是需要达到从头到尾独立开发的程度,从项目需求分析、架构设计数据库,编写代码并修复bug,形成项目10版本最终交付给客户,这一全套都要自己独立完成才能算你出徒了!
五、不断学习新知识java是一个庞大的知识体系,每天都有新的知识,新的框架出现,我们只要不断努力才能不被时代所抛弃。活到老,学到老,这是一个现代人所应该具备的基本素养,不仅在编程行业需要不算学习,在任何行业都需要这个品质。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
package hkc_1205;
import javaawtBorderLayout;
import javaawtColor;
import javaawtGridLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJPanel;
import javaxswingJTextField;
public class rot13input extends JFrame implements ActionListener {
//public static void main (String[] arags)
/ 计算器上的键的显示名字 /
private final String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6",
"", "%", "1", "2", "3", "-", "1/x", "0", "+/-", "", "+", "=" };
/ 计算器上的功能键的显示名字 /
private final String[] COMMAND = { "Backspace", "CE", "C" };
/ 计算器左边的M的显示名字 /
private final String[] M = { " ", "MC", "MR", "MS", "M+" };
/ 计算器上键的按钮 /
private JButton keys[] = new JButton[KEYSlength];
/ 计算器上的功能键的按钮 /
private JButton commands[] = new JButton[COMMANDlength];
/ 计算器左边的M的按钮 /
private JButton m[] = new JButton[Mlength];
/ 计算结果文本框 /
private JTextField resultText = new JTextField("0");
// 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private boolean firstDigit = true;
// 计算的中间结果。
private double resultNum = 00;
// 当前运算的运算符
private String operator = "=";
// *** 作是否合法
private boolean operateValidFlag = true;
/
构造函数
/
public rot13input(){
super();
//初始化计算器
init();
//设置计算器的背景颜色
thissetBackground(ColorLIGHT_GRAY);
thissetTitle("计算器");
//在屏幕(500, 300)坐标处显示计算器
thissetLocation(500, 300);
//不许修改计算器的大小
thissetResizable(false);
//使计算器中各组件大小合适
thispack();
}
/
初始化计算器
/
private void init() {
// 文本框中的内容采用右对齐方式
resultTextsetHorizontalAlignment(JTextFieldRIGHT);
// 不允许修改结果文本框
resultTextsetEditable(false);
// 设置文本框背景颜色为白色
resultTextsetBackground(Colorwhite);
//初始化计算器上键的按钮,将键放在一个画板内
JPanel calckeysPanel = new JPanel();
//用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
calckeysPanelsetLayout(new GridLayout(4, 5, 3, 3));
for (int i = 0; i < KEYSlength; i++) {
keys[i] = new JButton(KEYS[i]);
calckeysPaneladd(keys[i]);
keys[i]setForeground(Colorblue);
}
//运算符键用红色标示,其他键用蓝色表示
keys[3]setForeground(Colorred);
keys[8]setForeground(Colorred);
keys[13]setForeground(Colorred);
keys[18]setForeground(Colorred);
keys[19]setForeground(Colorred);
//初始化功能键,都用红色标示。将功能键放在一个画板内
JPanel commandsPanel = new JPanel();
//用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
commandsPanelsetLayout(new GridLayout(1, 3, 3, 3));
for (int i = 0; i < COMMANDlength; i++) {
commands[i] = new JButton(COMMAND[i]);
commandsPaneladd(commands[i]);
commands[i]setForeground(Colorred);
}
//初始化M键,用红色标示,将M键放在一个画板内
JPanel calmsPanel = new JPanel();
//用网格布局管理器,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素
calmsPanelsetLayout(new GridLayout(5, 1, 3, 3));
for (int i = 0; i < Mlength; i++) {
m[i] = new JButton(M[i]);
calmsPaneladd(m[i]);
m[i]setForeground(Colorred);
}
//下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部,
//将文本框放在北部,将calms画板放在计算器的西部。
//新建一个大的画板,将上面建立的command和calckeys画板放在该画板内
JPanel panel1 = new JPanel();
//画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素
panel1setLayout(new BorderLayout(3, 3));
panel1add("North", commandsPanel);
panel1add("West", calckeysPanel);
//建立一个画板放文本框
JPanel top = new JPanel();
topsetLayout(new BorderLayout());
topadd("Center", resultText);
//整体布局
getContentPane()setLayout(new BorderLayout(3, 5));
getContentPane()add("North", top);
getContentPane()add("Center", panel1);
getContentPane()add("West", calmsPanel);
//为各按钮添加事件侦听器
//都使用同一个事件侦听器,即本对象。本类的声明中有implements ActionListener
for (int i = 0; i < KEYSlength; i++) {
keys[i]addActionListener(this);
}
for (int i = 0; i < COMMANDlength; i++) {
commands[i]addActionListener(this);
}
for (int i = 0; i < Mlength; i++) {
m[i]addActionListener(this);
}
}
/
处理事件
/
public void actionPerformed(ActionEvent e) {
//获取事件源的标签
String label = egetActionCommand();
if (labelequals(COMMAND[0])){
//用户按了"Backspace"键
handleBackspace();
} else if (labelequals(COMMAND[1])) {
//用户按了"CE"键
resultTextsetText("0");
} else if (labelequals(COMMAND[2])){
//用户按了"C"键
handleC();
} else if ("0123456789"indexOf(label) >= 0) {
//用户按了数字键或者小数点键
handleNumber(label);
// handlezero(zero);
} else {
//用户按了运算符键
handleOperator(label);
}
}
/
处理Backspace键被按下的事件
/
private void handleBackspace() {
String text = resultTextgetText();
int i = textlength();
if (i > 0) {
//退格,将文本最后一个字符去掉
text = textsubstring(0, i - 1);
if (textlength() == 0) {
//如果文本没有了内容,则初始化计算器的各种值
resultTextsetText("0");
firstDigit = true;
operator = "=";
} else {
//显示新的文本
resultTextsetText(text);
}
}
}
/
处理数字键被按下的事件
@param key
/
private void handleNumber(String key) {
if (firstDigit) {
//输入的第一个数字
resultTextsetText(key);
} else if ((keyequals("")) && (resultTextgetText()indexOf("") < 0)){
//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
resultTextsetText(resultTextgetText() + "");
} else if (!keyequals("")) {
//如果输入的不是小数点,则将数字附在结果文本框的后面
resultTextsetText(resultTextgetText() + key);
}
//以后输入的肯定不是第一个数字了
firstDigit = false;
}
/
处理C键被按下的事件
/
private void handleC() {
//初始化计算器的各种值
resultTextsetText("0");
firstDigit = true;
operator = "=";
}
/
处理运算符键被按下的事件
@param key
/
private void handleOperator(String key) {
if (operatorequals("/")) {
//除法运算
//如果当前结果文本框中的值等于0
if (getNumberFromText() == 00){
// *** 作不合法
operateValidFlag = false;
resultTextsetText("除数不能为零");
} else {
resultNum /= getNumberFromText();
}
} else if (operatorequals("1/x")) {
//倒数运算
if (resultNum == 00){
// *** 作不合法
operateValidFlag = false;
resultTextsetText("零没有倒数");
} else {
resultNum = 1 / resultNum;
}
} else if (operatorequals("+")){
//加法运算
resultNum += getNumberFromText();
} else if (operatorequals("-")){
//减法运算
resultNum -= getNumberFromText();
} else if (operatorequals("")){
//乘法运算
resultNum = getNumberFromText();
} else if (operatorequals("sqrt")) {
//平方根运算
resultNum = Mathsqrt(resultNum);
} else if (operatorequals("%")){
//百分号运算,除以100
resultNum = resultNum / 100;
} else if (operatorequals("+/-")){
//正数负数运算
resultNum = resultNum (-1);
} else if (operatorequals("=")){
//赋值运算
resultNum = getNumberFromText();
}
if (operateValidFlag) {
//双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0) {
resultTextsetText(StringvalueOf(t1));
} else {
resultTextsetText(StringvalueOf(resultNum));
}
}
//运算符等于用户按的按钮
operator = key;
firstDigit = true;
operateValidFlag = true;
}
/
从结果文本框中获取数字
@return
/
private double getNumberFromText() {
double result = 0;
try {
result = DoublevalueOf(resultTextgetText())doubleValue();
} catch (NumberFormatException e){
}
return result;
}
public static void main(String args[]) {
rot13input calculator1 = new rot13input();
calculator1setVisible(true);
calculator1setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
}
1。
import javautilScanner;
class Test{
public static void main(String[] args){
Scanner scanner = new Scanner(Systemin);
int num = scannernextInt();
if (num % 5 == 0 && num % 6 == 0){
Systemoutprintln(num + "能被5和6整除");
}
if (num % 5 == 0){
Systemoutprintln(num + "能被5整除");
}
if (num % 6 == 0){
Systemoutprintln(num + "能被6整除");
}
}
}
2。
class Test{
public static void main(String[] args){
int arrRandom[] = new int[100];
for (int i=0;i<100;i++){
arrRandom[i] = (int)(Mathrandom()100+1);
Systemoutprint(arrRandom[i] + " ");
}
Systemoutprintln();
int max = IntegerMIN_VALUE;
int min = IntegerMAX_VALUE;
for (int i=0;i<100;i++){
if (max<=arrRandom[i]) max = arrRandom[i];
if (min>=arrRandom[i]) min = arrRandom[i];
}
Systemoutprintln("最小值:" + min);
Systemoutprintln("最大值:" + max);
}
}
3。
class Test{
public static void main(String[] args){
new A()start();
new B()start();
}
}
class A extends Thread{
public void run(){
for (int i=1;i<100;i+=2){
Systemoutprintln("In A:" + i);
try {
sleep(1000);
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
class B extends Thread{
public void run(){
for (int i=0;i<1000;i++){
Systemoutprintln("In B:" + (float)(Mathrandom()09));
try {
sleep(100);
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
4。
import javaioFile;
import javaioFileWriter;
class Test{
public static void main(String[] args) throws Exception{
FileWriter writer = new FileWriter(new File("atxt"));
for (int i=1;i<=100;i++){
writerwrite((i + "\n")toCharArray());
}
writerflush();
writerclose();
}
}
设计的类(接口)
public interface OptionArr {
/
找出一个整型数组中的最大数
/
int maxItem(int[] arr);
/
找出一个整型数组中的最小数
/
int minItem(int[] arr);
/
计算一个整型数组中的平均值
/
double pinjun(int[] arr);
/
统计一个整型数组中的偶数个数
/
int count(int[] arr);
}
主类
import javaioBufferedReader;
import javaioIOException;
import javaioInputStreamReader;
public class Admin implements OptionArr {
private static Admin admin = new Admin();
public static void main(String[] aa) {
int[] arr = new int[10];
// 从键盘取数据为数组赋值
for (int i = 0; i < 10; i++) {
Systemoutprint("输入第" + (i + 1) + "个数:");
arr[i] = getNumber();
}
while (true) {
// 键盘输入一个数字
Systemoutprint("键盘输入一个数字");
int index = getNumber();
if (index == 1) {
Systemoutprintln(adminmaxItem(arr));
}
if (index == 2) {
Systemoutprintln(adminminItem(arr));
}
if (index == 3) {
Systemoutprintln(adminpinjun(arr));
}
if (index == 4) {
Systemoutprintln(admincount(arr));
}
if (index == 0) {
break;
}
}
}
/
从键盘取数据(没有作特殊处理) 我用的jdk是14的,15用Scanner类
/
private static int getNumber() {
int num = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));
try {
num = IntegerparseInt(brreadLine());
} catch (NumberFormatException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
return num;
}
public int maxItem(int[] arr) {
int max = arr[0];
for (int i = 1; i < arrlength; i++) {
max = Mathmax(max, arr[i]);
}
return max;
}
public int minItem(int[] arr) {
int min = arr[0];
for (int i = 1; i < arrlength; i++) {
min = Mathmin(min, arr[i]);
}
return min;
}
public double pinjun(int[] arr) {
double d = 00;
for (int i = 0; i < arrlength; i++) {
d += arr[i];
}
return d / arrlength;
}
public int count(int[] arr) {
int count = 0;
for (int i = 0; i < arrlength; i++) {
if (arr[i] % 2 == 0 && arr[i] != 0) {
count++;
}
}
return count;
}
}
可以的,你试试吧
首先推荐你在select中不要是用 ,把具体的列写出来。
使用rs。getString(1);rs。getString(2)这样的方法进行取值。
还有就是把你的行号给显示出来。不知道你119具体是哪一行。
还有,有可能是你在数据库中并没有你传进去的相应的参数的值,所以,rs取值的时候取不到。包空指针异常很正常。
Java开发程序员工作职责
1、完成软件系统代码的实现,编写代码注释和开发文档;
2、辅助进行系统的功能定义,程序设计;
3、根据设计文档或需求说明完成代码编写,调试,测试和维护;
4、分析并解决软件开发过程中的问题;
5、协助测试工程师制定测试计划,定位发现的问题;
6、配合项目经理完成相关任务目标。
以上就是关于java 大神帮忙解决一下问题全部的内容,包括:java 大神帮忙解决一下问题、请问如何打好Java的基础、急求JAVA高手来解决点小问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)