負けてたまるか。

脳トレ、プログラミング、PHP、WEB製作などのメモ

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) | Edit
とりあえずスレッドで学んだことを試してみる。
「start」ボタンをクリックでプログレスバーの値が上昇する。
「stop」ボタンをクリックでプログレスバーの値のストップする。

runメソッドは1回ストップしたら再開できないらしいので、
フラグとループを使って止めることにする。
(この方法で合ってるのかな?)

一応動いたので記念に保存しておきます。

値が変動するプログレスバー


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.border.TitledBorder;

import java.awt.*;

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.BorderLayout;
import java.util.Random;

import javax.swing.border.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Bigdog extends JFrame implements ActionListener,
MouseListener,ChangeListener,Runnable{

public static final String windows = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
public static final String java = "javax.swing.plaf.metal.MetalLookAndFeel";
public static final String motif = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";

JProgressBar bar;
JButton btn1;
JButton btn2;
JLabel lbl1;
int count;
Thread t1 = null;
boolean stopFlag = true;

public Bigdog(String s){
super(s);

JPanel p0 = new JPanel();//ベースパネル

/*
* JProgressBar
*/

bar = new JProgressBar();//プログレスバー
p0.add(bar);

/*
* 進歩状況に応じてプログレスバーの値を変動
*/

//startボタン
JButton btn1 = new JButton("Start");
btn1.setActionCommand("start");
btn1.addActionListener(this);
p0.add(btn1);

//stopボタン
JButton btn2 = new JButton("Stop");
btn2.setActionCommand("stop");
btn2.addActionListener(this);
p0.add(btn2);

add(p0);//ベースパネルをフレームに追加



}

public static void main(String[] args){
Bigdog sr = new Bigdog("JProgressBar");

try {
UIManager.setLookAndFeel(java);
SwingUtilities.updateComponentTreeUI(sr);
} catch(Exception e3){}

sr.setDefaultCloseOperation(EXIT_ON_CLOSE);
sr.setSize(220,200);
sr.setLocationRelativeTo(null);
//sr.setBounds(10,10,300,300);
//sr.setLocation(1024/2-100, 600/3);
//sr.setResizable(false);

sr.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String cmd = arg0.getActionCommand();

if(cmd.equals("start")){
if(t1 == null){
t1 = new Thread(this);
t1.start();
} else {
stopFlag = true;
}
} else if(cmd.equals("stop")){
if(t1!=null){

stopFlag = false;

} else {

}
}
}

@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub

}

@Override
public void run() {
// TODO Auto-generated method stub


for(;;){

while(stopFlag){

count++;

if(count > 100){
count = 0;
}

bar.setValue(count);//バーの値設定

//プログレスバーの速さ(100ミリ秒で1増える)
try {
t1.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
//メモリの負担軽減
try {
t1.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}
スポンサーサイト
***Javaのオススメ入門書***から抜粋

後で本買うときの参考にするので保存しておきます。
読んだ本orイラナイ本は消していきます。
やっぱり全部表示しておきます。
8/11更新

Javaの入門書一覧


Head First Java
コアJava2 基礎
コアJava2 応用
JAVA GUIコンポーネント完全制覇 標準プログラマーズライブラリシリーズ
超図解 Java入門 GUI編 超図解シリーズ
Javaアプリケーション作成講座-Swingプログラミング徹底攻略
Javaプログラムがわかる オブジェクト指向なんかクソくらえ
Java言語プログラミングレッスン
Javaを独習する前に読む本
Efective Java
javaの鉄則
Javaの格言
Javaゲームプログラミング アルゴリズムとフレームワーク
プログラミング言語Java
Javaの落とし穴
Java謎+落とし穴徹底解明
独習JAVA
実習JAVA
Javaの教科書
やさしいJava
Javaによるテキスト処理入門
Java2認定ガイド
創るJava―NetBeansでつくって学ぶJava GUI & WEBアプリケーション
HeadFirstデザインパターン
Javaスレッド完全制覇
Java言語で学ぶデザインパターン入門 マルチスレッド編
あなたのコードを「賢く」するデザインパターンJavaプログラミング
Java プログラミング1001 Tips
15歳からはじめるJAVAゲームプログラミング

7 :デフォルトの名無しさん:2007/09/17(月) 21:48:35
Javaチュートリアル第3版
オープンソース徹底活用 Eclipse3によるJavaアプリケーション開発
Javaによるはじめてのアルゴリズム入門
Java言語入門ソフトウェアシリーズ
標準JavaプログラミングブックNew Languageシリーズ
一週間でマスターする Java
Black Book Java
Java Swing Hacks
ゲーム作りで学ぶJavaプログラミング入門
エッセンシャルJava
やさしく学ぶ基礎からのJDBC
即解JAVAプログラミング入門―J2SE5.0対応
Java Puzzlers 罠、落とし穴、コーナーケース
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java + MySQL + Tomcatで作る掲示板とブログ
Javaスパイダーツールサンプル&クックブック―自動アクセス&収集・加工プログラム
ゲームプログラミングで学習するJava入門
はじめてのJavaプログラミング入門
なぜあなたはJavaでオブジェクト指向開発ができないのか
JavaGUIプログラミングⅠ
JavaGUIプログラミングⅡ
JavaGUIプログラミングⅢ
Java クイックリファレンス
Java言語で学ぶデザインパターン入門
ずばりわかる! Java Javaの良いコード、悪いコード
Java クックブック
Java プログラム クイックリファレンス
Java GUI コンポーネント完全制覇
新しいJavaの教科書
世界で一番簡単なJavaのe本 //←これはマジで地雷なのでオススメできない
Java GUIプログラミングシリーズ
Java GUIプログラミング - さらにパワーアップしたSwing

8 :デフォルトの名無しさん:2007/09/17(月) 21:59:10
オブジェクト脳のつくり方
独習デザインパターン
Javaで学ぶアルゴリズムとデータ構造
Javaプログラマのためのアルゴリズムとデータ構造
Javaバイブルテキストシリーズ①
ソースコードリーディングから学ぶ Javaの設計と実装
コードコンプリート
プログラマ養成入門講座Java
基礎からのサーブレット/JSP
JavaからRubyへ ― マネージャのための実践移行ガイド
新基準Javaプログラミング アプリ作成でやさしく身につく徹底入門
Javaプログラムチップス グラフィックス&GUI
○Look & Feel チェンジャ
初心者本見ながら頑張った。
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Samp extends JFrame implements ActionListener {

public static final String windows = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
public static final String java = "javax.swing.plaf.metal.MetalLookAndFeel";
public static final String motif = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
private JButton btn;
private JLabel lbl;
private JPanel panel;
private JRadioButton rdo_windows;
private JRadioButton rdo_java;
private JRadioButton rdo_motif;
private ButtonGroup group;

public Samp(String title){
super(title);

btn = new JButton("ボタンです");
lbl = new JLabel("ラベルです",JLabel.CENTER);

setLayout(new GridLayout(3,1));

rdo_windows = new JRadioButton("Windows Style");
rdo_java = new JRadioButton("Java Style");
rdo_motif = new JRadioButton("Motif Style");

rdo_windows.addActionListener(this);
rdo_java.addActionListener(this);
rdo_motif.addActionListener(this);

panel = new JPanel();
panel.setBorder(BorderFactory.createLineBorder(new Color(0,0,0)));
panel.setLayout(new FlowLayout());

group = new ButtonGroup();
group.add(rdo_windows);
group.add(rdo_java);
group.add(rdo_motif);

panel.add(rdo_windows);
panel.add(rdo_java);
panel.add(rdo_motif);

add(panel);
add(btn);
add(lbl);

setDefaultCloseOperation(this.EXIT_ON_CLOSE);

setSize(350,150);
setVisible(true);
}

public static void main(String[] args){
Samp smp = new Samp("Look & Feel チェンジャ");
}

public void actionPerformed(ActionEvent e){
JRadioButton source = (JRadioButton)e.getSource();

if(source == rdo_windows){
try {
UIManager.setLookAndFeel(windows);
SwingUtilities.updateComponentTreeUI(this);
} catch(Exception e3){}
}

if(source == rdo_java){
try {
UIManager.setLookAndFeel(java);
SwingUtilities.updateComponentTreeUI(this);
} catch(Exception e3){}
}

if(source == rdo_motif){
try {
UIManager.setLookAndFeel(motif);
SwingUtilities.updateComponentTreeUI(this);
} catch(Exception e3){}
}
}
}
初心者なのに本冊だけは一人前です。
Javaおいしいです^p^

こうやって自分にプレッシャーをかけるのが私のやり方・・。
| ホーム |

カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

最近の記事

月別アーカイブ

タグリスト

ブログ内検索

カテゴリー

RSSフィード

リンク

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。