- PR -

superの使い方

1
投稿者投稿内容
macha
会議室デビュー日: 2008/05/22
投稿数: 8
投稿日時: 2008-06-24 23:19
JColorChooserのカスタマイズして新しいパネルを追加して、そこに色のテーブルを乗せるというプログラムをテキストを見ながらやっているのですが、
以下の部分が、どうしてsuper(2, 4);とならなければならないのでしょうか?

テキストにこの部分について詳しい解説がないためよくわかりません。
JTable table = new JTable();
と変えると、コンパイルは通りますが実行が上手く出来ません。

見当違いの質問でしたらすみません。
何方かおしえていただけますでしょうか。よろしくお願いします。


ソース
********************************************

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;

class ColorTable extends JTable implements MouseListener{

Color selectedColor;
JDialog dialog;

Color[][] color = {{
new Color(253, 202, 157),new Color(236, 196, 144),
new Color(214, 171, 128),new Color(223, 200, 182),

},{
new Color(211, 162, 122),new Color(241, 237, 212),
new Color(247, 222, 181),new Color(172, 157, 136),
}};


public ColorTable(){
super(2,4); ←←この部分です。

ColorTableRenderer renderer = new ColorTableRenderer();
for(int i=0; i < getColumnCount(); i++){
TableColumn column = getColumnModel().getColumn(i);
column.setCellRenderer(renderer);
column.setMinWidth(16);
}
addMouseListener(this);
}


class ColorTableRenderer extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
setBackground(color[row][column]);
return(this);
}
}


public Color getColor(){
return(selectedColor);
}

public void mousePressed(MouseEvent e){
int row = getSelectedRow();
int column = getSelectedColumn();
selectedColor = color[row][column];
}

public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}

}


[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-24 23:19 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-24 23:20 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-24 23:21 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-24 23:22 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-24 23:22 ]
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2008-06-24 23:43
引用:

以下の部分が、どうしてsuper(2, 4);とならなければならないのでしょうか?


配列colorが2行4列で定義してあるので、2行4列の表が必要なのでしょう。

引用:

テキストにこの部分について詳しい解説がないためよくわかりません。


テキストにクラスの継承に関する説明はないのでしょうか? 別のテキストも読んだほうがよいですよ。
ranco
大ベテラン
会議室デビュー日: 2007/11/02
投稿数: 112
投稿日時: 2008-06-25 11:53
このコンストラクタを、super()は呼び出しています。
JTable(int numRows, int numColumns)

Javaプログラミングの勉強努力の半分以上は、APIのドキュメンテーションをよく読むことです。
macha
会議室デビュー日: 2008/05/22
投稿数: 8
投稿日時: 2008-06-27 11:12
スフレ様、ranco様、返答していただきありがとうございました。

もう少し自力で調べてみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)