2012年1月21日土曜日
HTMLEditorKit 基本情報
一行ずつ処理するのに便利
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/text/html/HTMLEditorKit.html
クラス HTMLEditorKit.ParserCallback
handleStartTag は、開始タグと終了タグを持つタグを取得する。
handleEndTag は、開始タグと終了タグを持つタグを取得する。
handleSimpleTag は、終了タグを持たないタグを取得する。
handleText は、HTMLの文字列の取得・処理を行います。
handleComment は、コメントを取得する。
handleEndOfLineString は、ストリームの末尾を取得する。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/text/html/HTMLEditorKit.html
クラス HTMLEditorKit.ParserCallback
handleStartTag は、開始タグと終了タグを持つタグを取得する。
handleEndTag は、開始タグと終了タグを持つタグを取得する。
handleSimpleTag は、終了タグを持たないタグを取得する。
handleText は、HTMLの文字列の取得・処理を行います。
handleComment は、コメントを取得する。
handleEndOfLineString は、ストリームの末尾を取得する。
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.ParserDelegator;
import java.io.*;
public class HtmlParser{
public static void main(String[] args){
HtmlParser p = new HtmlParser();
p.exec();
}
public void exec() {
Reader reader;
try {
FileInputStream is = new FileInputStream("E:/html/text.html");
InputStreamReader in = new InputStreamReader(is, "SJIS");
reader = new BufferedReader(in);
MyParserCallback cb = new MyParserCallback();
ParserDelegator pd = new ParserDelegator();
pd.parse(reader, cb, true);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
class MyParserCallback extends HTMLEditorKit.ParserCallback {
public void handleStartTag(HTML.Tag tag, MutableAttributeSet attr, int pos){
System.out.println("スタートタグが呼ばれました");
}
public void handleText(char[] data, int pos) {
System.out.println( new String(data) );
}
public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attr,int pos) {
System.out.println("-------------- 終了タグを持たないタグが呼ばれました");
}
}
}
2011年11月6日日曜日
最初のプログラム
ディスクをE:\にjavaフォルダを作成する。
helloworld.javaファイルを作る。
テキストエディターでファイルを作成する
public class helloworld {
public static void main (String[] args) {
System.out.println("Hello World !!");
}
}
コマンドプロンプトを起動させて、E:\javaに移動する。
コンパイルする
E:\java>javac helloworld.java
helloworld.class が作成されました。
実行して確かめてみる。
E:\java>java helloworld
Hello World !!
うまく表示できました。
テキストエディターはTeraPadを使って、
文字コードはUTF-8N 改行コードはCR-LFで作成しました。
helloworld.javaファイルを作る。
テキストエディターでファイルを作成する
public class helloworld {
public static void main (String[] args) {
System.out.println("Hello World !!");
}
}
コマンドプロンプトを起動させて、E:\javaに移動する。
コンパイルする
E:\java>javac helloworld.java
helloworld.class が作成されました。
実行して確かめてみる。
E:\java>java helloworld
Hello World !!
うまく表示できました。
テキストエディターはTeraPadを使って、
文字コードはUTF-8N 改行コードはCR-LFで作成しました。
開発環境構築
最初の状態の確認
以前、インストールしたのが入っているようです。
まだ、設定していないのでjavac コマンドは使えない。
Java SE Development Kit 7 Downloads をダウンロードしてくる。
jdk-7u1-windows-i586.exe
インストーラにしたがってインストールする。
インストール後の確認
インストールフォルダに移動する。
C:\Windows\system32>cd ../../
C:\>cd "Program Files\Java\jdk1.7.0_01\bin"
javac コマンドを打ってみる
オプションを指定していないのでメッセージが出るが、使えるようです。
どこの場所からでjavacコマンドが使えるようにpathを設定する。
末尾に下記の一文を加える
;C:\Program Files\Java\jdk1.7.0_01\bin
再起動して確かめる。
どこからでも、javacコマンドが使えるようです。
以前、インストールしたのが入っているようです。
まだ、設定していないのでjavac コマンドは使えない。
Java SE Development Kit 7 Downloads をダウンロードしてくる。
jdk-7u1-windows-i586.exe
インストーラにしたがってインストールする。
インストール後の確認
インストールフォルダに移動する。
C:\Windows\system32>cd ../../
C:\>cd "Program Files\Java\jdk1.7.0_01\bin"
javac コマンドを打ってみる
オプションを指定していないのでメッセージが出るが、使えるようです。
どこの場所からでjavacコマンドが使えるようにpathを設定する。
末尾に下記の一文を加える
;C:\Program Files\Java\jdk1.7.0_01\bin
再起動して確かめる。
どこからでも、javacコマンドが使えるようです。
2011年9月13日火曜日
複数フレーム
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
class NewFrame extends JFrame {
public NewFrame(String string) {
// TODO 自動生成されたコンストラクター・スタブ
super(string);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p1 = new JPanel();
p1.setPreferredSize(new java.awt.Dimension(600, 270));
Container contentPane = getContentPane();
contentPane.add(p1, BorderLayout.NORTH);
contentPane.add(new JLabel("Xボタンで子ウインドウも閉じる"));
pack();
System.out.println(Toolkit.getDefaultToolkit().getScreenSize());
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
System.out.println(size.width);
setLocation(size.width / 2, size.height / 2);
setVisible(true);
}
}
class NewFrame2 extends JFrame {
public NewFrame2(String string) {
// TODO 自動生成されたコンストラクター・スタブ
super(string);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p1 = new JPanel();
p1.setPreferredSize(new java.awt.Dimension(600, 270));
Container contentPane = getContentPane();
contentPane.add(p1, BorderLayout.NORTH);
contentPane.add(new JLabel("Xボタンを押しても親ウインドウは閉じない"));
pack();
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(size.width / 2 + 30, size.height / 2 + 30);
setVisible(true);
}
}
class NewFrame3 extends JFrame {
public NewFrame3(String string) {
// TODO 自動生成されたコンストラクター・スタブ
super(string);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p1 = new JPanel();
p1.setPreferredSize(new java.awt.Dimension(600, 270));
Container contentPane = getContentPane();
contentPane.add(p1, BorderLayout.NORTH);
contentPane.add(new JLabel("Xボタンを押しても親ウインドウは閉じない"));
pack();
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(size.width / 2 + 60, size.height / 2 + 60);
setVisible(true);
}
}
public class swingTestSlider {
public static void main(String[] args) {
new NewFrame("親フレーム");
new NewFrame2("子ウインドウ");
new NewFrame3("子ウインドウ2");
}
}
setDefaultCloseOperation :JFrameで有効 ApplicationFrameでは使えない
EXIT_ON_CLOSE クローズボタンのクリック時にプログラムの実行を終了する
DISPOSE_ON_CLOSE クローズボタンのクリック時に JFrame を破棄する
DO_NOTHING_ON_CLOSE クローズボタンをクリックしても何もしない
HIDE_ON_CLOSE クローズボタンのクリック時にウィンドウを隠す
Dimension getSize ( ) フレームの大きさを獲得します
棒グラフ-IntervalXYDataset
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYBarRenderer;
import org.jfree.data.xy.IntervalXYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class swingTestSlider extends ApplicationFrame {
private static class DemoPanel extends JPanel implements ChangeListener {
JSlider slider;
ValueAxis xAxis;
XYSeries series;
public DemoPanel() {
super(new BorderLayout());
IntervalXYDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(600, 270));
add(chartPanel);
JPanel panel = new JPanel(new BorderLayout());
this.slider = new JSlider();
slider.setMaximum(series.getItemCount());
slider.setValue(series.getItemCount());
this.slider.addChangeListener(this);
panel.add(this.slider);
add(panel, BorderLayout.SOUTH);
}
private JFreeChart createChart(IntervalXYDataset dataset) {
final JFreeChart chart = ChartFactory.createXYBarChart(
"IntervalXYDataset", "X", false, "Y", dataset,
PlotOrientation.VERTICAL, true, true, false);
XYPlot plot = (XYPlot) chart.getPlot();
NumberAxis numberaxis = (NumberAxis) plot.getDomainAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
xAxis = plot.getDomainAxis();
xAxis.setAutoRange(false);
xAxis.setRange(80, 100);
plot.setRenderer(new XYBarRenderer());
XYBarRenderer renderer = (XYBarRenderer) chart.getXYPlot().getRenderer();
renderer.setMargin(0.1);;
return chart;
}
/*
* グラフデータを作る
*/
private IntervalXYDataset createDataset() {
series = new XYSeries("XYSeriesデータ");
for ( int i = 1 ; i < 101 ; i++){
series.add(i, 100+i);
}
final XYSeriesCollection dataset = new XYSeriesCollection(series);
return dataset;
}//グラフデータを作るここまで
@Override
public void stateChanged(ChangeEvent event) {
xAxis.setRange(slider.getValue()-20, slider.getValue());
//System.out.println(slider.getValue());
}
}//class MakePanel ここまで
public swingTestSlider(String title) {
super(title);
setContentPane(new DemoPanel());
}
public static JPanel createDemoPanel() {
return new DemoPanel();
}
public static void main(String[] args) {
swingTestSlider demo = new swingTestSlider("XYBarChart");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
2011年9月12日月曜日
slider - 目盛りの設定
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
public class JSliderTest1 extends JFrame implements ChangeListener {
JSlider slider;
JLabel label;
JSliderTest1(String string) {
super(string);
slider = new JSlider();
slider.setMaximum(200); /* スライダの最大値 */
slider.setMinimum(0); /* スライダの最小値 */
slider.setValue(150); /* スライダの値 */
slider.setMajorTickSpacing(50); /* 大きな目盛りの間隔 */
slider.setMinorTickSpacing(10); /* 小さな目盛りの間隔 */
slider.setPaintTicks(true); /* 目盛りを表示 */
slider.setPaintLabels(true); /* ラベルを表示 */
slider.addChangeListener(this);
JPanel panel = new JPanel();
panel.add(slider);
label = new JLabel();
label.setText("スライダーの値:" + slider.getValue());
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().add(label, BorderLayout.SOUTH);
}
public static void main(String[] args) {
JSliderTest1 frame = new JSliderTest1("スライダーテスト");
frame.pack();
frame.setVisible(true);
}
@Override
public void stateChanged(ChangeEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
label.setText("スライダーの値:" + slider.getValue());
}
}
登録:
投稿 (Atom)











