import java.awt.*;
10多年的井陘網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整井陘建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“井陘網(wǎng)站設(shè)計”,“井陘網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
/**
* 多線程,小球演示. 打開Windows任務(wù)管理器,可看到線程變化。 可搜索到,run()方法/.start()
*
* du: 程序技巧體會: 所謂產(chǎn)生一個小球,即是 new 其類對象,其屬性攜帶畫小球的 坐標、顏色、所在容器 等參數(shù)。
*
* 一個類,屬性用來作為參數(shù)容器用, 方法....完成功能。
* */
// 運行類
public class BouncePress {
//
public static void main(String[] args) {
JFrame frame = new BouncePressFrame(); // 生成窗口。執(zhí)行構(gòu)造。-----業(yè)務(wù)邏輯。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to
// window
// listener
frame.show();
}
}
class BouncePressFrame extends JFrame {
private BallPressCanvas canvas;
public BouncePressFrame() {
setSize(600, 500); // 窗口大小
setTitle("Bounce Ball");
Container contentPane = getContentPane(); // Swing的窗口不能直接放入東西,只能在其上的ContentPane上放。
canvas = new BallPressCanvas(); // 生成一個新面板。-----canvas
contentPane.add(canvas, BorderLayout.CENTER); // 窗口中心 加入該面板。
JPanel buttonPanel = new JPanel(); // 再生成一個新面板。----buttonPanel
// 調(diào)用本類方法addButton。
addButton(buttonPanel, "Start", // 生成一個按鈕"Start"---加入面板buttonPanel
new ActionListener() { // |------按鈕綁上 action監(jiān)聽器。
public void actionPerformed(ActionEvent evt) { // | 小球容器對象的
addBall(Thread.NORM_PRIORITY - 4, Color.black); // 事件處理時,執(zhí)行---addBall()方法。---產(chǎn)生小球(參數(shù)對象)---加入List中---開始畫球。
}
}); // 按一次,addBall()一次---產(chǎn)生一個新小球---加入List中---開始畫此新小球。
// ---畫球線程BallPressThread的run()---小球(參數(shù)對象).move()---每次畫時,先移動,再判斷,再畫。
// ---BallPressCanvas類的canvas對象.paint()---自動調(diào)BallPressCanvas類的paintComponent(Graphics
// g)方法。
// ---該方法,從List中循環(huán)取出所有小球,第i個球,---調(diào)該小球BallPress類
// .draw()方法---調(diào)Graphics2D方法畫出小球。--使用color/
addButton(buttonPanel, "Express", new ActionListener() {
public void actionPerformed(ActionEvent evt) {
addBall(Thread.NORM_PRIORITY + 2, Color.red);
}
});
addButton(buttonPanel, "Close", new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
});
contentPane.add(buttonPanel, BorderLayout.SOUTH);
}
public void addButton(Container c, String title, ActionListener listener) {
JButton button = new JButton(title); // 生成一個按鈕。
c.add(button); // 加入容器中。
button.addActionListener(listener); // 按鈕綁上 action監(jiān)聽器。
}
/** 主要業(yè)務(wù)方法。 */
public void addBall(int priority, Color color) {
// 生成 小球(參數(shù)對象)
BallPress b = new BallPress(canvas, color); // 生成BallPress對象,攜帶、初始化
// 畫Ball形小球,所需參數(shù):所在容器組件,所需color--black/red.
// 小球加入 List中。
canvas.add(b); // 面板canvas 的ArrayList中 加入BallPress對象。
BallPressThread thread = new BallPressThread(b); // 生成畫小球的線程類BallPressThread對象。傳入BallPress對象(攜帶了畫球所需
// 容器、color參數(shù))。
thread.setPriority(priority);
thread.start(); // call run(), ball start to move
// 畫球線程開始。---BallPressThread的run()---小球(參數(shù)對象).move()---先移動,再畫。canvas.paint---BallPressCanvas類的
}
}
// 畫球的線程類。
class BallPressThread extends Thread {
private BallPress b;
public BallPressThread(BallPress aBall) {
b = aBall;
}
// 畫球開始。
public void run() {
try {
for (int i = 1; i = 1000; i++) { // 畫1000次。
b.move(); // 每次畫時,先移動,再判斷,再畫。
sleep(5); // 所以移動比Bounce.java的球慢。
}
} catch (InterruptedException e) {
}
}
}
// swing面板類.
// 作用1) 本類面板對象.paint()方法----自動繪制面板,且自動調(diào)paintComponent(Graphics
// g)方法,---重寫該方法,繪制面板(及其上組件)。
// 作用2) 該類對象 屬性ArrayList balls---兼作小球(參數(shù)對象)的容器。
class BallPressCanvas extends JPanel {
private ArrayList balls = new ArrayList();
public void add(BallPress b) {
balls.add(b); // 向ArrayList中添加球。當按下按鈕,添加多個球時,都保存在這個List中。
}
// 重寫了 javax.swing.JComponent的 paintComponent()方法。
// paint()方法自動調(diào)用該方法。
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i balls.size(); i++) { // 循環(huán)
BallPress b = (BallPress) balls.get(i); // 從List中取出第i個球,
b.draw(g2); // 畫此球。
}
}
}
/**
* 畫出球。
*
* 在 canvas上畫出,color色的小球圖形。
*
* 屬性,可用于攜帶畫小球所需參數(shù)。
*
*
*
* @author ducongan
*
*/
class BallPress {
private Component canvas;
private Color color;
private int x = 0;
private int y = 0;
private int dx = 2;
private int dy = 2;
// 構(gòu)造 初始化 容器 顏色 參數(shù)。
public BallPress(Component c, Color aColor) {
canvas = c;
color = aColor;
}
// 制定位置,畫出小球。
public void draw(Graphics2D g2) {
g2.setColor(color);
g2.fill(new Ellipse2D.Double(x, y, 15, 15)); // ellipse:橢圓形
}
// 移動小球。
// 每次畫時,先移動,再判斷,再畫。
// 該方法每次執(zhí)行,畫小球的起點坐標 (x,y), 每次各自+2, 即斜向右下運動。
public void move() {
x += dx; // x=x+dx; 畫小球的起點坐標 (x,y), 每次各自+2, 即斜向右下運動。
y += dy; // y=y+dy;
if (x 0) { // 小球已到左邊框。保證,從左邊框開始畫。
x = 0;
dx = -dx; // 小球橫坐標變化值取反。開始反向運動。
}
if (x + 15 = canvas.getWidth()) { // 小球右邊已經(jīng)到畫板右邊。
x = canvas.getWidth() - 15;
dx = -dx; // 開始反向運動。
}
if (y 0) { // 保證,從頂框開始畫。
y = 0;
dy = -dy;
}
if (y + 15 = canvas.getHeight()) { // 小球已到畫板頂。
y = canvas.getHeight() - 15;
dy = -dy;
}
canvas.paint(canvas.getGraphics()); // 畫出面板對象canvas----(及其上所有組件)
// //.paint()方法,自動調(diào)用
}
}
/*import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
*//**
* 單線程,小球演示 搜索不到,run()方法/.start()
*//*
public class Bounce {
public static void main(String[] args) {
JFrame frame = new BounceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to
// window
// listener
frame.show();
}
}
不懂的再問啊。。。
我是讓它每10毫秒掃描一下。
Calendar ca=null;
Calendar ca1=null;
Timer timer=new Timer();
static Connection con=null;
public void chu(){
ca=Calendar.getInstance();
ca1=(Calendar)ca.clone();
ca1.add(Calendar.SECOND, 20);
}
public void Time(){
float s=ca1.get(Calendar.SECOND)-ca.get(Calendar.SECOND)+(ca1.get(Calendar.MILLISECOND)-ca.get(Calendar.MILLISECOND))/1000f;
if(con==null){
System.out.println("耗時"+String.valueOf(s)+"秒");
if(ca.after(ca1)){
System.out.println("取不到連接");
timer.cancel();
return ;
}
}else{
System.out.println("耗時"+String.valueOf(s)+"秒");
}
ca.add(Calendar.MILLISECOND, 10);
timer.schedule(
new TimerTask() {
public void run() {
System.out.println("時間在溜走。。。。");
Time();
}
}, ca.getTime());
}
void getcon(){
Connection con=null;//獲取Connection
chu();
Time();
}
把簽到信息存到一個簽到表里,簽到表關(guān)聯(lián)用戶ID,有簽到日期,每天的簽到就是一條記錄,積分掛在用戶信息表中,再來個積分日志表,積分發(fā)生變動就記錄進去,比如獲得積分或花了積分了。積分等級想復雜點了就來個積分等級表,里面存的是規(guī)則,想簡單了就在積分余額字段后面再加個字段標記當前積分等級,甚至在前端當場計算都行
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
public class Counter extends Frame
{
//聲明三個面板的布局
GridLayout gl1,gl2,gl3;
Panel p0,p1,p2,p3;
JTextField tf1;
TextField tf2;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;
StringBuffer str;//顯示屏所顯示的字符串
double x,y;//x和y都是運算數(shù)
int z;//Z表示單擊了那一個運算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m;//記憶的數(shù)字
public Counter()
{
gl1=new GridLayout(1,4,10,0);//實例化三個面板的布局
gl2=new GridLayout(4,1,0,15);
gl3=new GridLayout(4,5,10,15);
tf1=new JTextField(27);//顯示屏
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setText("0");
tf2=new TextField(10);//顯示記憶的索引值
tf2.setEditable(false);
//實例化所有按鈕、設(shè)置其前景色并注冊監(jiān)聽器
b0=new Button("Backspace");
b0.setForeground(Color.red);
b0.addActionListener(new Bt());
b1=new Button("CE");
b1.setForeground(Color.red);
b1.addActionListener(new Bt());
b2=new Button("C");
b2.setForeground(Color.red);
b2.addActionListener(new Bt());
b3=new Button("MC");
b3.setForeground(Color.red);
b3.addActionListener(new Bt());
b4=new Button("MR");
b4.setForeground(Color.red);
b4.addActionListener(new Bt());
b5=new Button("MS");
b5.setForeground(Color.red);
b5.addActionListener(new Bt());
b6=new Button("M+");
b6.setForeground(Color.red);
b6.addActionListener(new Bt());
b7=new Button("7");
b7.setForeground(Color.blue);
b7.addActionListener(new Bt());
b8=new Button("8");
b8.setForeground(Color.blue);
b8.addActionListener(new Bt());
b9=new Button("9");
b9.setForeground(Color.blue);
b9.addActionListener(new Bt());
b10=new Button("/");
b10.setForeground(Color.red);
b10.addActionListener(new Bt());
b11=new Button("sqrt");
b11.setForeground(Color.blue);
b11.addActionListener(new Bt());
b12=new Button("4");
b12.setForeground(Color.blue);
b12.addActionListener(new Bt());
b13=new Button("5");
b13.setForeground(Color.blue);
b13.addActionListener(new Bt());
b14=new Button("6");
b14.setForeground(Color.blue);
b14.addActionListener(new Bt());
b15=new Button("*");
b15.setForeground(Color.red);
b15.addActionListener(new Bt());
b16=new Button("%");
b16.setForeground(Color.blue);
b16.addActionListener(new Bt());
b17=new Button("1");
b17.setForeground(Color.blue);
b17.addActionListener(new Bt());
b18=new Button("2");
b18.setForeground(Color.blue);
b18.addActionListener(new Bt());
b19=new Button("3");
b19.setForeground(Color.blue);
b19.addActionListener(new Bt());
b20=new Button("-");
b20.setForeground(Color.red);
b20.addActionListener(new Bt());
b21=new Button("1/X");
b21.setForeground(Color.blue);
b21.addActionListener(new Bt());
b22=new Button("0");
b22.setForeground(Color.blue);
b22.addActionListener(new Bt());
b23=new Button("+/-");
b23.setForeground(Color.blue);
b23.addActionListener(new Bt());
b24=new Button(".");
b24.setForeground(Color.blue);
b24.addActionListener(new Bt());
b25=new Button("+");
b25.setForeground(Color.red);
b25.addActionListener(new Bt());
b26=new Button("=");
b26.setForeground(Color.red);
b26.addActionListener(new Bt());
//實例化四個面板
p0=new Panel();
p1=new Panel();
p2=new Panel();
p3=new Panel();
//創(chuàng)建一個空字符串緩沖區(qū)
str=new StringBuffer();
//添加面板p0中的組件和設(shè)置其在框架中的位置和大小
p0.add(tf1);
p0.setBounds(10,25,300,40);
//添加面板p1中的組件和設(shè)置其在框架中的位置和大小
p1.setLayout(gl1);
p1.add(tf2);
p1.add(b0);
p1.add(b1);
p1.add(b2);
p1.setBounds(10,65,300,25);
//添加面板p2中的組件并設(shè)置其的框架中的位置和大小
p2.setLayout(gl2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.setBounds(10,110,40,150);
//添加面板p3中的組件并設(shè)置其在框架中的位置和大小
p3.setLayout(gl3);//設(shè)置p3的布局
p3.add(b7);
p3.add(b8);
p3.add(b9);
p3.add(b10);
p3.add(b11);
p3.add(b12);
p3.add(b13);
p3.add(b14);
p3.add(b15);
p3.add(b16);
p3.add(b17);
p3.add(b18);
p3.add(b19);
p3.add(b20);
p3.add(b21);
p3.add(b22);
p3.add(b23);
p3.add(b24);
p3.add(b25);
p3.add(b26);
p3.setBounds(60,110,250,150);
//設(shè)置框架中的布局為空布局并添加4個面板
setLayout(null);
add(p0);
add(p1);
add(p2);
add(p3);
setResizable(false);//禁止調(diào)整框架的大小
//匿名類關(guān)閉窗口
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e1)
{
System.exit(0);
}
});
setBackground(Color.lightGray);
setBounds(100,100,320,280);
setVisible(true);
}
//構(gòu)造監(jiān)聽器
class Bt implements ActionListener
{
public void actionPerformed(ActionEvent e2)
{
try{
if(e2.getSource()==b1)//選擇"CE"清零
{
tf1.setText("0");//把顯示屏清零
str.setLength(0);//清空字符串緩沖區(qū)以準備接收新的輸入運算數(shù)
}
else if(e2.getSource()==b2)//選擇"C"清零
{
tf1.setText("0");//把顯示屏清零
str.setLength(0);
}
else if(e2.getSource()==b23)//單擊"+/-"選擇輸入的運算數(shù)是正數(shù)還是負數(shù)
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(-x));
}
else if(e2.getSource()==b25)//單擊加號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);//清空緩沖區(qū)以便接收新的另一個運算數(shù)
y=0d;
z=0;
}
else if(e2.getSource()==b20)//單擊減號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=1;
}
else if(e2.getSource()==b15)//單擊乘號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=2;
}
else if(e2.getSource()==b10)//單擊除號按鈕獲得x的值和z的值并空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=3;
}
else if(e2.getSource()==b26)//單擊等號按鈕輸出計算結(jié)果
{
str.setLength(0);
switch(z)
{
case 0 : tf1.setText(""+(x+y));break;
case 1 : tf1.setText(""+(x-y));break;
case 2 : tf1.setText(""+(x*y));break;
case 3 : tf1.setText(""+(x/y));break;
}
}
else if(e2.getSource()==b24)//單擊"."按鈕輸入小數(shù)
{
if(tf1.getText().trim().indexOf(′.′)!=-1)//判斷字符串中是否已經(jīng)包含了小數(shù)點
{
}
else//如果沒數(shù)點有小
{
if(tf1.getText().trim().equals("0"))//如果初時顯示為0
{
str.setLength(0);
tf1.setText((str.append("0"+e2.getActionCommand())).toString());
}
else if(tf1.getText().trim().equals(""))//如果初時顯示為空則不做任何操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
}
}
y=0d;
}
else if(e2.getSource()==b11)//求平方根
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText("數(shù)字格式異常");
if(x0)
tf1.setText("負數(shù)沒有平方根");
else
tf1.setText(""+Math.sqrt(x));
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b16)//單擊了"%"按鈕
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(0.01*x));
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b21)//單擊了"1/X"按鈕
{
x=Double.parseDouble(tf1.getText().trim());
if(x==0)
{
tf1.setText("除數(shù)不能為零");
}
else
{
tf1.setText(""+(1/x));
}
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b3)//MC為清除內(nèi)存
{
m=0d;
tf2.setText("");
str.setLength(0);
}
else if(e2.getSource()==b4)//MR為重新調(diào)用存儲的數(shù)據(jù)
{
if(tf2.getText().trim()!="")//有記憶數(shù)字
{
tf1.setText(""+m);
}
}
else if(e2.getSource()==b5)//MS為存儲顯示的數(shù)據(jù)
{
m=Double.parseDouble(tf1.getText().trim());
tf2.setText("M");
tf1.setText("0");
str.setLength(0);
}
else if(e2.getSource()==b6)//M+為將顯示的數(shù)字與已經(jīng)存儲的數(shù)據(jù)相加要查看新的數(shù)字單擊MR
{
m=m+Double.parseDouble(tf1.getText().trim());
}
else//選擇的是其他的按鈕
{
if(e2.getSource()==b22)//如果選擇的是"0"這個數(shù)字鍵
{
if(tf1.getText().trim().equals("0"))//如果顯示屏顯示的為零不做操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
else if(e2.getSource()==b0)//選擇的是“BackSpace”按鈕
{
if(!tf1.getText().trim().equals("0"))//如果顯示屏顯示的不是零
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能拋出字符串越界異常
}
else
{
tf1.setText("0");
str.setLength(0);
}
}
y=Double.parseDouble(tf1.getText().trim());
}
else//其他的數(shù)字鍵
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
}
catch(NumberFormatException e){
tf1.setText("數(shù)字格式異常");
}
catch(StringIndexOutOfBoundsException e){
tf1.setText("字符串索引越界");
}
}
}
public static void main(String args[])
{
new Counter();
}
}
你在JAVA的環(huán)境中運行一下。
這題目也是我的作業(yè),我運行的了。
網(wǎng)站名稱:任務(wù)積分java源代碼,java 積分
本文來源:http://jinyejixie.com/article18/dsedidp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、企業(yè)建站、全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)