私はこのシステムにテーブルがあり、最後の列にボタンを配置する必要があります。私は研究してきましたが、私が見たコードはすべて本当に混乱しています。 1つのthoですが、まだ私は理解していない部分があります。ここで私がInvoiceArray
何http://www.javaquery.com/2013/05/how-to-implement-jbutton-in-jtable.htmljtuttonにjbuttonを追加するシンプルな方法
String[] InvoiceArray = new String[20];
//Declare above variable globally. Used by two-three methods. Change variable name as per your need.
/*
* import the ButtonColumn class if you are not working in IDE
* I used formWindowOpened event to load content in Jtable but you can use other event.
* All you need is put the code with in that event.
*/
private void formWindowOpened(java.awt.event.WindowEvent evt) {
Object[][] rowData = new Object[4][2]; // 4: is number of row ; 2: is number of column
Object columnNames[] = {"Invoice No", "View Report"}; // Name of columns
for (int i = 0; i < 4; i++) {
InvoiceArray[i] = i + "-2345";
rowData[i][0] = i + "-2345";
rowData[i][1] = "View Order " + i; // Can change the text of button.
}
DefaultTableModel tm = new DefaultTableModel(rowData, columnNames);
jTable1.setModel(tm);
ButtonColumn buttonColumn = new ButtonColumn(jTable1, showOrder, 1); // 1: is column number. column count starts with 0,1,2...
}
それを得たサイトですか?最後の行からshowOrder
を作成する必要がありますか?また、リスナーを作る方法について彼が投稿したコードは理解していませんでした。ここにあります:
Action showOrder = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
//JTable table = (JTable) e.getSource(); // If you have multiple component following the ActionEvent
int modelRow = Integer.valueOf(e.getActionCommand());
if (InvoiceArray[modelRow] != null) {
/* We are placing invoice no in array
* And track the button click index
* And fetch index in invoice no
*/
System.out.println("Your Invoice No:" + InvoiceArray[modelRow]);
} else {
JOptionPane.showMessageDialog(rootPane, "No records found!");
}
}
};
私は既にいくつかの説明があることを知っています。私はそれらのいくつかを理解するが、すべてではない。 jtuttonにjbuttonを追加するだけでなく、jbuttonのリスナーを追加する単純な方法です。ありがとうございます。
あなたは私にそれを行う方法についてちょうど非常に非常に短いコードを与えることができますか?私はすでにTable Button Columnをチェックしていますが、本当に混乱していて、ニーモニックをどこに追加したのかわかりませんでした:/ – luh
@luh、簡単なコードが与えられています。 JTableを作成し、それにデータを追加します。これは標準のJTable処理です。このポスティングでは、データ付きのJTableを作成し、テーブルをフレームに追加する方法を理解していることを前提としています。これを行う方法がわからない場合は、作業例のチュートリアルを読んでください。次に、クリックされた行を削除するアクションを追加する方法を示す7行のコードがあります。 「ニーモニックをどこに追加したのか分からなかった」 - 何?あなたは "setMnemonic(...)"ステートメントを見ましたか?私はあなたの混乱を理解していません。 – camickr
ああ、なぜニーモニックを付け加えたの?なぜニーモニックは単なる選択肢であると述べたのか。彼のコードから何かを変えるのですか?はい、私はそれでデータをjtableを作成する方法を知っている、私は本当にリスナーでjbuttonsを追加する方法を知りません。サンプルコードから、 'InvoiceArray'がそれほど重要でない場合、私はそれを取り除くことができますか? 'showOrder'は何のためですか? – luh