ディスクを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で作成しました。
2011年11月6日日曜日
開発環境構築
最初の状態の確認
以前、インストールしたのが入っているようです。
まだ、設定していないので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()); } }
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(500); /* スライダの最大値 */ slider.setMinimum(0); /* スライダの最小値 */ 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()); } }
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.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()); } }
2011年9月10日土曜日
棒グラフの色・影の設定
import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import org.jfree.chart.ChartColor; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class swingTest { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ // ウインドウの表示場所とサイズ指定 frame.setBounds(10, 10, 600, 400); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); //グラフ作成 // データ設定 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1000, "東京支店", "1月"); dataset.addValue(2500, "ニューヨーク支店", "1月"); dataset.addValue(1500, "ロンドン支店", "1月"); dataset.addValue(1200, "東京支店", "2月"); dataset.addValue(2900, "ニューヨーク支店", "2月"); dataset.addValue(1400, "ロンドン支店", "2月"); // グラフを生成する JFreeChart chart = ChartFactory.createBarChart("グラフタイトル", "店舗名", "売上額", dataset, PlotOrientation.VERTICAL, true, false, false); CategoryPlot plot = chart.getCategoryPlot(); BarRenderer renderer = (BarRenderer)plot.getRenderer(); // 影の設定 renderer.setShadowVisible(false); // シリーズの色設定 renderer.setSeriesPaint(0, ChartColor.RED); renderer.setSeriesPaint(1, ChartColor.BLUE); renderer.setSeriesPaint(2, ChartColor.YELLOW); //パネルにグラフを追加 ChartPanel cpanel = new ChartPanel(chart); contentPane.add(cpanel, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
最初の棒グラフ
import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; public class swingTest { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ // ウインドウの表示場所とサイズ指定 frame.setBounds(10, 10, 600, 400); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); //グラフ作成 // データ設定 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1000, "東京支店", "1月"); dataset.addValue(2500, "ニューヨーク支店", "1月"); dataset.addValue(1500, "ロンドン支店", "1月"); dataset.addValue(1200, "東京支店", "2月"); dataset.addValue(2900, "ニューヨーク支店", "2月"); dataset.addValue(1400, "ロンドン支店", "2月"); // グラフを生成する JFreeChart chart = ChartFactory.createBarChart("グラフタイトル", "店舗名", "売上額", dataset, PlotOrientation.VERTICAL, true, false, false); //パネルにグラフを追加 ChartPanel cpanel = new ChartPanel(chart); contentPane.add(cpanel, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
2011年9月8日木曜日
JTableでの数値のソート
import java.awt.BorderLayout; import java.awt.Container; import java.util.Comparator; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableRowSorter; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(320, 160); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null); //frame.setBounds(2500, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); // ボタンのインスタンスを生成 JButton button = new JButton("button"); contentPane.add(button, BorderLayout.SOUTH); String[][] tabledata = { {"10", "1" , "cfd"}, {"1", "111" , "ade"}, {"9", "45" , "ree"}, {"3", "33" , "brt"}}; String[] columnNames = { "データ1", "データ2" ,"データ3"}; DefaultTableModel tableModel = new DefaultTableModel(columnNames,0); TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(tableModel); JTable table = new JTable(tableModel); sorter.setComparator(0, new Comparator<String>() { public int compare(String a, String b) { return Integer.parseInt(a) - Integer.parseInt(b); } }); table.setRowSorter(sorter); for (int i = 0; i < tabledata.length; i++) { tableModel.addRow(tabledata[i]); } JScrollPane scroll = new JScrollPane(table); contentPane.add(scroll, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }一番左の行で数値のソートが可能です。
sorter.setComparator(0, new Comparator<String>() の行で0を1にすれば、
データ2で数値のソートができる。
2011年9月7日水曜日
URLを指定してブラウザで開く
import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class BrawserTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ try { Desktop desktop = Desktop.getDesktop(); desktop.browse(new URI("http://google.co.jp")); desktop.browse(new URI("http://www.yahoo.co.jp")); } catch (URISyntaxException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } }
クリックされたセルの値を取得
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(300, 150); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null);// 中央に表示 // frame.setBounds(200, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); String[][] tabledata = { { "名前1", "10" }, { "名前2", "11" }, { "名前3", "12" }, { "名前4", "13" } }; String[] columnNames = { "名前", "年齢" }; //DefaultTableModel を作成します。 DefaultTableModel tableModel = new DefaultTableModel(tabledata,columnNames); //jテーブルを作成 final JTable table = new JTable(tableModel); //テーブルにマウスイベントを付ける table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { // 選択行の行番号を取得します int row = table.getSelectedRow(); int col = table.getSelectedColumn(); String s = (String) table.getValueAt(row,col); System.out.println("行" + row + "::" + "列" + col + "::" + s); } }); //jスクロールパネルを作成しテーブルを追加 JScrollPane sp = new JScrollPane(table); //jスクロールパネルのサイズを指定 sp.setPreferredSize(new Dimension(250, 70)); //jパネルを作成 JPanel p = new JPanel(); //Jパネルにjスクロールパネルを追加 p.add(sp); //フレームにJパネルを追加 contentPane.add(p, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
クリックされたセルを取得
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(300, 150); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null);// 中央に表示 // frame.setBounds(200, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); String[][] tabledata = { { "名前1", "10" }, { "名前2", "11" }, { "名前3", "12" }, { "名前4", "13" } }; String[] columnNames = { "名前", "年齢" }; //DefaultTableModel を作成します。 DefaultTableModel tableModel = new DefaultTableModel(tabledata,columnNames); //jテーブルを作成 final JTable table = new JTable(tableModel); //テーブルにマウスイベントを付ける table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { // 選択行の行番号を取得します int row = table.getSelectedRow(); int col = table.getSelectedColumn(); System.out.println("行" + row + "::" + "列" + col); } }); //jスクロールパネルを作成しテーブルを追加 JScrollPane sp = new JScrollPane(table); //jスクロールパネルのサイズを指定 sp.setPreferredSize(new Dimension(250, 70)); //jパネルを作成 JPanel p = new JPanel(); //Jパネルにjスクロールパネルを追加 p.add(sp); //フレームにJパネルを追加 contentPane.add(p, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
テーブルにマウスイベントを付ける
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(300, 150); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null);// 中央に表示 // frame.setBounds(200, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); String[][] tabledata = { { "名前1", "10" }, { "名前2", "11" }, { "名前3", "12" }, { "名前4", "13" } }; String[] columnNames = { "名前", "年齢" }; //DefaultTableModel を作成します。 DefaultTableModel tableModel = new DefaultTableModel(tabledata,columnNames); //jテーブルを作成 final JTable table = new JTable(tableModel); //テーブルにマウスイベントを付ける table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { System.out.println("テーブルがクリックされました"); } }); //jスクロールパネルを作成しテーブルを追加 JScrollPane sp = new JScrollPane(table); //jスクロールパネルのサイズを指定 sp.setPreferredSize(new Dimension(250, 70)); //jパネルを作成 JPanel p = new JPanel(); //Jパネルにjスクロールパネルを追加 p.add(sp); //フレームにJパネルを追加 contentPane.add(p, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
テーブルに行を追加
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(300, 150); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null);// 中央に表示 // frame.setBounds(200, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); String[][] tabledata = { { "名前1", "10" }, { "名前2", "11" }, { "名前3", "12" }, { "名前4", "13" } }; String[] columnNames = { "名前", "年齢" }; //DefaultTableModel を作成します。 DefaultTableModel tableModel = new DefaultTableModel(tabledata,columnNames); //jテーブルを作成 JTable table = new JTable(tableModel); //jスクロールパネルを作成しテーブルを追加 JScrollPane sp = new JScrollPane(table); //jスクロールパネルのサイズを指定 sp.setPreferredSize(new Dimension(250, 70)); //jパネルを作成 JPanel p = new JPanel(); //Jパネルにjスクロールパネルを追加 p.add(sp); //フレームにJパネルを追加 contentPane.add(p, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); //テーブルに値を追加 tableModel.addRow(new String[] {"名前5", "14"}); } }
テーブルの作成
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ frame.setSize(300, 150); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null);// 中央に表示 // frame.setBounds(200, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); String[][] tabledata = { { "名前1", "10" }, { "名前2", "11" }, { "名前3", "12" }, { "名前4", "13" } }; String[] columnNames = { "名前", "年齢" }; //DefaultTableModel を作成します。 DefaultTableModel tableModel = new DefaultTableModel(tabledata,columnNames); JTable table = new JTable(tableModel); //jスクロールパネルを作成しテーブルを追加 JScrollPane sp = new JScrollPane(table); //jスクロールパネルのサイズを指定 sp.setPreferredSize(new Dimension(250, 70)); //jパネルを作成 JPanel p = new JPanel(); //Jパネルにjスクロールパネルを追加 p.add(sp); //フレームにJパネルを追加 contentPane.add(p, BorderLayout.CENTER); // ウィンドウを表示 frame.setVisible(true); } }
ボタンの表示
import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ // mainFrame.setSize(320, 160); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null); frame.setBounds(2500, 200, 300, 150); // JFrameよりContentPaneを取得 Container contentPane = frame.getContentPane(); // ボタンのインスタンスを生成 JButton button = new JButton("button"); // ボタンをフレームに追加 contentPane.add(button, BorderLayout.SOUTH); // ウィンドウを表示 frame.setVisible(true); } }
フレームの作成
import javax.swing.JFrame; public class swingTest { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ JFrame frame = new JFrame("サンプル"); // Xボタンが押された時の挙動 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウサイズ // mainFrame.setSize(320, 160); // ウインドウの表示場所とサイズ指定 frame.setLocationRelativeTo(null); frame.setBounds(2500, 200, 300, 150); // ウィンドウを表示 frame.setVisible(true); } }
2011年9月5日月曜日
VisualEditorのインストール
新規ソフトウェアのインストールで下記URLを指定してもインストールできなかったので
http://download.eclipse.org/tools/ve/updates/1.4/
違う方法をメモ
http://www.eclipse.org/archived/から
Visual editor をインストールして解凍してできるフォルダの中の
downloads/drops/1.4.0/R200909301124 フォルダのVE-Update-1.4.0.zipを使う
新規ソフトウェアのインストール画面の作業対象の追加ボタンをクリックして、
アーカイブをクリックして VE-Update-1.4.0.zipを選択する。
http://download.eclipse.org/tools/ve/updates/1.4/
違う方法をメモ
http://www.eclipse.org/archived/から
Visual editor をインストールして解凍してできるフォルダの中の
downloads/drops/1.4.0/R200909301124 フォルダのVE-Update-1.4.0.zipを使う
新規ソフトウェアのインストール画面の作業対象の追加ボタンをクリックして、
アーカイブをクリックして VE-Update-1.4.0.zipを選択する。
2011年9月3日土曜日
ファイルの中身を一行ずつ表示
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class First { public static void main(String[] args) { String path = "/pass"; // FileReaderオブジェクトfを生成 try { FileReader in = new FileReader(path); // (3)BufferedReaderオブジェクトbrを生成 BufferedReader br = new BufferedReader(in); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); in.close(); } catch (FileNotFoundException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }
フォルダ内のファイルを表示する
import java.io.File; public class First { public static void main(String[] args) { //フォルダのパスを表示 String path = "/pass"; //Fileクラスのインスタンスを作成 File dir = new File(path); //フォルダの中身を配列に入れる String[] directory_list = dir.list(); for (int i = 0; i < directory_list.length; i++) { //ファイル・ディレクトリ一覧の表示 System.out.println(directory_list[i]); } } }
最後の文字を削除する
文字列の中の文字を指定して探して最後に現れた場所を指定して削除する。
最後の,を削除する場合
a,b,c,d,e
最後の,を削除する場合
public class First { public static void main(String[] args) { String str = new String("a,b,c,d,e,"); // 文字列をバッファーに入れる StringBuffer s = new StringBuffer(str); // 最後にマッチしたインデックスを取得 int index = s.lastIndexOf(","); // インデクスを指定して削除して表示 System.out.println(s.deleteCharAt(index)); } }結果
a,b,c,d,e
2011年9月1日木曜日
指定したインデックスのオブジェクトを取得する
import java.util.LinkedList; import java.util.List; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ List l = new LinkedList(); //オブジェクトの追加 l.add("Sun"); l.add("Mercury"); l.add("Venus"); //指定したインデックスのオブジェクトを取得する System.out.println(l.get(1)); } }
出力結果
Mercury
オブジェクトを追加する
import java.util.LinkedList; import java.util.List; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ List l = new LinkedList(); //オブジェクトの追加 l.add("Sun"); l.add("Venus"); //指定したインデックスにオブジェクトを挿入する l.add(1, "Mercury"); //Listの中身を表示 System.out.println(l); } }
出力結果
[Sun, Mercury, Venus]
空かどうか検査する
import java.util.ArrayList; import java.util.Collection; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Collection c = new ArrayList(); //オブジェクトの追加 c.add("Sun"); c.add("Mercury"); c.add("Venus"); //空かどうか検査する System.out.println("空ですか?" + c.isEmpty()); } }
出力結果
空ですか?false
オブジェクトの個数を取得
import java.util.ArrayList; import java.util.Collection; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Collection c = new ArrayList(); //オブジェクトの追加 c.add("Sun"); c.add("Mercury"); c.add("Venus"); //オブジェクトの個数を取得する。 System.out.println("オブジェクトの個数:" + c.size()); } }
出力結果
オブジェクトの個数:3
オブジェクトが含まれているか検査する
import java.util.ArrayList; import java.util.Collection; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Collection c = new ArrayList(); //オブジェクトの追加 c.add("Sun"); c.add("Mercury"); c.add("Venus"); //オブジェクトが含まれているか検査する System.out.println("コレクションの中身:" + c); System.out.println("Sunを 検査:" + c.contains("Sun")); System.out.println("Earthを検査:" + c.contains("Earth")); } }
出力結果
コレクションの中身:[Sun, Mercury, Venus]
Sunを 検査:true
Earthを検査:false
コレクションからオブジェクトを削除する
import java.util.ArrayList; import java.util.Collection; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Collection c = new ArrayList(); //オブジェクトの追加 c.add("Sun"); c.add("Mercury"); c.add("Venus"); //オブジェクトの削除 c.remove("Sun"); //コレクションの中身を表示する System.out.println(c.toString()); } }
出力結果
[Mercury, Venus]
コレクションにオブジェクトを追加する
import java.util.ArrayList; import java.util.Collection; public class collection_test { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Collection c = new ArrayList(); //オブジェクトの追加 c.add("Sun"); c.add("Mercury"); c.add("Venus"); //コレクションの中身を表示する System.out.println(c.toString()); } }
出力結果
[Sun, Mercury, Venus]
2011年8月31日水曜日
文字列の連結
+ で連結
String name = "java" + "!";
+= で末尾連結
String name = "java";
name += "!";
String.concatメソッドで末尾連結
String name = "java";
name.concat("!");
String name = "java" + "!";
+= で末尾連結
String name = "java";
name += "!";
String.concatメソッドで末尾連結
String name = "java";
name.concat("!");
文字列分割
String str1 = new String("DATE : 2011/08/30 00:00現在"); String[] str1Ary = str1.split(" ");
半角の空白を区切り文字として分割して配列に入れる。
文字列の置換
引数1:検索文字列
引数2:置換文字列
置換された文字列
結果
文字列】
正規表現で指定
String tvName = chData.replaceAll("\\(.*?\\)", "");
()の中の文字を置き換え
引数2:置換文字列
置換された文字列
String name = "【文字列】"; name = name.replaceAll("【","");
System.out.println(name);
結果
文字列】
正規表現で指定
String tvName = chData.replaceAll("\\(.*?\\)", "");
()の中の文字を置き換え
2011年8月30日火曜日
2011年3月8日火曜日
凡例の文字化け対策
レガシーテーマを設定することで、文字化けを回避します。
ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());
import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.chart.StandardChartTheme; import org.jfree.data.general.DefaultPieDataset; import org.jfree.chart.ChartUtilities; import java.io.File; import java.io.IOException; import java.awt.*; import java.applet.*; public class HelloJava extends Applet { public void paint(Graphics g) { DefaultPieDataset data = new DefaultPieDataset(); data.setValue("1月", 10); data.setValue("2月", 20); data.setValue("3月", 30); data.setValue("その他", 40); ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme()); JFreeChart chart = ChartFactory.createPieChart("統計データ", data, true, false, false); File file = new File("./chart.png"); try { ChartUtilities.saveChartAsPNG(file, chart, 500, 500); } catch (IOException e) { e.printStackTrace(); } } }
最初のグラフ
import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.data.general.DefaultPieDataset; import org.jfree.chart.ChartUtilities; import java.io.File; import java.io.IOException; import java.awt.*; import java.applet.*; public class HelloJava extends Applet { public void paint(Graphics g) { DefaultPieDataset data = new DefaultPieDataset(); data.setValue("1月", 10); data.setValue("2月", 20); data.setValue("3月", 30); data.setValue("その他", 40); JFreeChart chart = ChartFactory.createPieChart("統計データ", data, true, false, false); File file = new File("./chart.png"); try { ChartUtilities.saveChartAsPNG(file, chart, 500, 500); } catch (IOException e) { e.printStackTrace(); } } }作成したグラフを画像ファイルとして保存しています。 グラフ画像ファイルはプロジェクトフォルダーのbinフォルダの中にあります。
Eclipseへ外部JARを設定
プロジェクト から プロパティーを選択します。
外部JARの追加をクリックします。
外部JARの追加をクリックします。
jcommon-x.x.xx.jar jfreechart-x.x.xx.jar を選択して
開くをクリックします。
JFreeChart の準備
JFreeChartは無料で利用できるjavaのライブラリです。
グラフを扱うのに便利なライブラリです。
入手先:http://www.jfree.org/jfreechart/
DOWNLOAD をクリックして、 SourceForge download page. をクリックします。
Download jfreechart-1.0.13.zip (7.7 MB) をクリックするとダウンロードが開始します。
ダウンロード終了後解凍します。
グラフを扱うのに便利なライブラリです。
入手先:http://www.jfree.org/jfreechart/
DOWNLOAD をクリックして、 SourceForge download page. をクリックします。
Download jfreechart-1.0.13.zip (7.7 MB) をクリックするとダウンロードが開始します。
ダウンロード終了後解凍します。
最初のアプレット
javaのソースコード:HelloJava.java
実行ボタンを押して確認します。
html ファイルで指定した場所にHelloJava.classファイルを置く。
HelloJava.classファイルはワークスペースのフォルダの中のプロジェクト名のフォルダの中の
bin フォルダにある。
ワークスペースの場所の確認は
ウインドウ->設定->一般-> 開始およびシャットダウン で確認できます。
ブラウザでアプレットが利用できなかったが、
アドオンを全て無効にしてみたらうまく表示出来ました。
import java.awt.*; import java.applet.*; public class HelloJava extends Applet { public void paint(Graphics g) { g.drawString("Hello World",20,20); } }HTML ファイルの作成:HelloJava.html
<html> <title>Hello World Applet</title> <body> <applet code="HelloJava" width=100 height=100></applet> </body> </html>Eclipse で開発
実行ボタンを押して確認します。
html ファイルで指定した場所にHelloJava.classファイルを置く。
HelloJava.classファイルはワークスペースのフォルダの中のプロジェクト名のフォルダの中の
bin フォルダにある。
ワークスペースの場所の確認は
ウインドウ->設定->一般-> 開始およびシャットダウン で確認できます。
ブラウザでアプレットが利用できなかったが、
アドオンを全て無効にしてみたらうまく表示出来ました。
登録:
投稿 (Atom)