当前位置: 技术问答>java相关
关于JAVA的疑问。
来源: 互联网 发布时间:2015-03-06
本文导语: 1. 如何实现一个点在矩形中碰壁后反弹,类似打台球的效果。 主要是程序思路。 2. 都说JAVA擅长网络编程,这里的网络编程主要是指什么? 公司用JAVA都做什么程序?请举例说明。 我准备学JAVA,所以想先对它有些...
1. 如何实现一个点在矩形中碰壁后反弹,类似打台球的效果。
主要是程序思路。
2. 都说JAVA擅长网络编程,这里的网络编程主要是指什么?
公司用JAVA都做什么程序?请举例说明。
我准备学JAVA,所以想先对它有些了解,好决定自己的发展方向。
谢谢
主要是程序思路。
2. 都说JAVA擅长网络编程,这里的网络编程主要是指什么?
公司用JAVA都做什么程序?请举例说明。
我准备学JAVA,所以想先对它有些了解,好决定自己的发展方向。
谢谢
|
这是一个多线程的程序,其中有碰壁后反弹的算法。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BounceThread
{ public static void main(String[] args)
{ JFrame frame = new BounceThreadFrame();
frame.show();
}
}
class BounceThreadFrame extends JFrame
{ public BounceThreadFrame()
{ setSize(300, 200);
setTitle("Bounce");
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
Container contentPane = getContentPane();
canvas = new JPanel();
contentPane.add(canvas, "Center");
JPanel p = new JPanel();
addButton(p, "Start",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ Ball b = new Ball(canvas);
b.start();
}
});
addButton(p, "Close",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ canvas.setVisible(false);
System.exit(0);
}
});
contentPane.add(p, "South");
}
public void addButton(Container c, String title,
ActionListener a)
{ JButton b = new JButton(title);
c.add(b);
b.addActionListener(a);
}
private JPanel canvas;
}
class Ball extends Thread
{ public Ball(JPanel b) { box = b; }
public void draw()
{ Graphics g = box.getGraphics();
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
public void move()
{ if (!box.isVisible()) return;
Graphics g = box.getGraphics();
g.setXORMode(box.getBackground());
g.fillOval(x, y, XSIZE, YSIZE);
x += dx;
y += dy;
Dimension d = box.getSize();
if (x = d.width)
{ x = d.width - XSIZE; dx = -dx; }
if (y = d.height)
{ y = d.height - YSIZE; dy = -dy; }
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
public void run()
{ try
{ draw();
for (int i = 1; i
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BounceThread
{ public static void main(String[] args)
{ JFrame frame = new BounceThreadFrame();
frame.show();
}
}
class BounceThreadFrame extends JFrame
{ public BounceThreadFrame()
{ setSize(300, 200);
setTitle("Bounce");
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
Container contentPane = getContentPane();
canvas = new JPanel();
contentPane.add(canvas, "Center");
JPanel p = new JPanel();
addButton(p, "Start",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ Ball b = new Ball(canvas);
b.start();
}
});
addButton(p, "Close",
new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ canvas.setVisible(false);
System.exit(0);
}
});
contentPane.add(p, "South");
}
public void addButton(Container c, String title,
ActionListener a)
{ JButton b = new JButton(title);
c.add(b);
b.addActionListener(a);
}
private JPanel canvas;
}
class Ball extends Thread
{ public Ball(JPanel b) { box = b; }
public void draw()
{ Graphics g = box.getGraphics();
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
public void move()
{ if (!box.isVisible()) return;
Graphics g = box.getGraphics();
g.setXORMode(box.getBackground());
g.fillOval(x, y, XSIZE, YSIZE);
x += dx;
y += dy;
Dimension d = box.getSize();
if (x = d.width)
{ x = d.width - XSIZE; dx = -dx; }
if (y = d.height)
{ y = d.height - YSIZE; dy = -dy; }
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
public void run()
{ try
{ draw();
for (int i = 1; i