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 - 値の設定


slider.setValue(300);

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日土曜日

棒の幅を設定する


 
表示領域を1として小数点以下の数値で幅を設定する
renderer.setMaximumBarWidth(0.01); 

棒の間隔を設定


renderer.setItemMargin(0);

棒のグラデーションを無効にする


renderer.setBarPainter(new StandardBarPainter());

棒グラフの色・影の設定


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(0new Comparator<String>() の行で0を1にすれば、
データ2で数値のソートができる。
 

JTableでのソートを可能にする。

下記の一文を加えるだけで可能になる。

table.setAutoCreateRowSorter(true);

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日月曜日

パレットの表示

テキストエディッタの右上の三角をクリックすると開く

JFrame ビジュアル・クラスの作成

プロジェクトを選択して
新規
その他
Swing
JFrame ビジュアル・クラスを選択して次へボタンをクリック
クラス名を入力して完了ボタンをクリックする。

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を選択する。

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]);
		}
	}
}

最後の文字を削除する

文字列の中の文字を指定して探して最後に現れた場所を指定して削除する。

最後の,を削除する場合
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

java.net.sockettimeoutexception: read timed out

ネットワークのプロパティ

sun.net.client.defaultReadTimeout (デフォルト: -1) ;


()内にミリ秒で時間を長めに設定する。

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]