![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.4ベストアンサー
- 回答日時:
簡単なサンプルを作ってみたんで、参考にしてみてください。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class ResiseTable extends JFrame implements ActionListener{
JTable table;
JTextField jtf;
final String resize="サイズ変更";
String[][] rowData = {
{"1","阪神","48","28","19","1",".596","-"},
{"2","巨人","50","28","20","2",".583","0.5"},
{"3","中日","47","26","20","1",".565","1"},
{"4","ヤクルト","48","25","23","0",".521","2"},
{"5","広島","49","20","27","2",".426","4.5"},
{"6","横浜","50","15","33","2",".313","5.5"},
};
String[] columnNames = {"順位","チーム","試合数","勝","負","分","勝率","ゲーム差"};
DefaultTableModel model;
int actCount = 0;
public static void main(String[] args){
/* コンストラクタ */
ResiseTable test = new ResiseTable();
/* 終了処理を追加 */
test.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});
/* サイズと位置を指定 */
test.setBoundsToCenter(500, 200);
/* 実際に表示する */
test.setVisible(true);
}
ResiseTable(){
JPanel p1 = new JPanel();
model = new DefaultTableModel(rowData, columnNames);
table= new JTable(model);
JScrollPane scrPane = new JScrollPane();
scrPane.getViewport().setView(table);
scrPane.setPreferredSize(new Dimension(450, 115));
p1.add(scrPane);
Container content = this.getContentPane();
content.add(p1, BorderLayout.CENTER);
JPanel p2 = new JPanel();
jtf=new JTextField("0",5);
jtf.setHorizontalAlignment(JTextField.RIGHT);
p2.add(jtf);
JButton smallButton = new JButton(resize);
smallButton.addActionListener(this);
p2.add(smallButton);
content.add(p2, BorderLayout.SOUTH);
}
void setBoundsToCenter(int width,int height)
{
Dimension screen_dim = getToolkit().getScreenSize();
setBounds((int)((screen_dim.getWidth()-width)/2),(int)((screen_dim.getHeight()-height)/2),width,height);
}
public void actionPerformed(ActionEvent ae){
try
{
int size=Integer.parseInt(jtf.getText());
TableColumnModel tcm=table.getColumnModel();
int selectedColumn=table.getSelectedColumn();
if(selectedColumn>=0)
{
TableColumn tc=tcm.getColumn(selectedColumn);
tc.setPreferredWidth(size);
}
}
catch(Exception e)
{
}
}
}
ご回答ありがとうございます。
サンプルを試させて頂いたところ、私のやりたかった
処理を行うことが出来ました。
どうやらMaxWidthだけでサイズを設定していたのが
いけなかったようです。setPreferredWidthでサイズセ
ットしたらできる様になりました。
どうもありがとうございました。
No.3
- 回答日時:
こんばんは。
JTableのオートリサイズモードが邪魔をしているのだと思います。
setAutoResizeModeメソッドでAUTO_RESIZE_OFFに設定し、オートリサイズモードをオフにしてやればいいと思います。
当然ですが、オートリサイズが利かなくなるので、表の見た目に不満が出るかもしれませんが、しょうがないですね。
あと、カラムの幅の最小値を0にしておくのもお忘れなく。
No.2
- 回答日時:
うーん、なんででしょう・・・?
カラム幅の変更前と変更後のTableColumn#getMaxWidthとTableColumn#getMinWidthの値は同じでしょうか?
また、TableColumn#getResizableの値はtrueでしょうか?
一回目はサイズ変更できたのであれば、どこかでそれらの値が変更されていると思うのですが・・・
もしくは、カラムサイズを「0」にしたのであれば発想をかえて、TableModelから対象の列を削除してはどうでしょう。
No.1
- 回答日時:
TableColumn#setWidth(int width)
TableColumn#setPrefferedWidth(int prefferedWidth)
でどうでしょうか?
もちろんボタンのActionListener#actionPerformed
で(カラムサイズの)フラグの判定などはしないと
いけないですが・・・
早速の回答ありがとうございます。
試したところ、ボタンを押した1回目だけはサイズ変更できるのですが、2回以降は何の変化もありませんでした。 単純にサイズの再設定をするだけではだめなようです、、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- docomo(ドコモ) スマフォで急に文字が小さくなってしまった 4 2023/06/11 10:18
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- 化学 陰イオン交換クロマトグラフィーについての質問です。 先日、陰イオン錯体の形成による分離の実験を行いま 1 2023/05/02 01:26
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
java初心者の質問(3つの整数の...
-
コード中の謎のエラー
-
JAVA エラー 式の開始が不正で...
-
Javaで電卓を作りたい
-
javaでcsvファイル読込時の改行...
-
C#で「型または名前空間名 'int...
-
前日日付の取得
-
メインが含まれていません
-
6桁の数字を重複なしでランダム...
-
byte[]→int
-
Comparatorを使用したソートに...
-
javaのエラーの意味がわかりま...
-
sin曲線とcos曲線を描くプログ...
-
java spring でエラーが出て困...
-
ビープ音をなめらかに鳴らしたい
-
c# デリゲート関連の命名について
-
JTableで、動的にカラム幅の設...
-
クラスの設計の問題
-
式の型は配列型で int に解決済...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
Javaで電卓を作りたい
-
式の型は配列型で int に解決済...
-
javaでカレンダー作成
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
java spring でエラーが出て困...
-
6桁の数字を重複なしでランダム...
-
c# デリゲート関連の命名について
-
C++からC#のdllを参照する際、...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
三目並べ(Tick-Tack-Toe)をJav...
-
JUnit4のアノテーションについて
-
初心者ですが、今javaで簡単な...
-
classを使って座標軸を求めるコ...
-
javaでcsvファイル読込時の改行...
-
C#で実行時にメソッドの返り値...
-
Java 初心者 int型の取り扱い方
おすすめ情報