Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16348
| Path | csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Nigel Wade <nmw@ion.le.ac.uk> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: NetBeans Application with sortable Table and pre-existing frame/table code |
| Date | Wed, 25 Jul 2012 16:40:20 +0100 |
| Lines | 245 |
| Message-ID | <a7aib5FuoqU1@mid.individual.net> (permalink) |
| References | <e4d9d3b6-0457-45c8-9bf3-6f7bbe0da09a@googlegroups.com> <2c4cb42d-92d9-48a6-9d69-0f63c5461070@googlegroups.com> <ff39b71a-20af-45b7-9123-4403d6e8b6d0@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding | 7bit |
| X-Trace | individual.net 3dnbvBjV0q7ZXF+ycQDSrAeIbPjtx/zuBOp/s+U4QfB4mVCVurd/3Xh/OG5VTXyVXg |
| Cancel-Lock | sha1:fHZoK9SzwMt+3/DIMXpsfawV7Qw= |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0 |
| In-Reply-To | <ff39b71a-20af-45b7-9123-4403d6e8b6d0@googlegroups.com> |
| Xref | csiph.com comp.lang.java.programmer:16348 |
Show key headers only | View raw
On 25/07/12 15:54, clusardi2k@aol.com wrote:
> How do I get this modified code to work.
>
> I modified the working/good code from the attached link to the below code. The reason I do not want to use the code exactly on this link is it creates a new window and doesn't use the form that I already am using. The pre-existing form has jPanel1 (swing JPanel) containing jPanel3 (swing JPanel). And, jPanel3 contains jTable1 (swing JTable).
>
> http://www.java-tips.org/java-se-tips/javax.swing/sorting-and-filtering-tables.html
>
> (jTable1 was dragged to the form from the swing control palette. Design view shows a table with 4 columns and 4 rows, but the area is blanked out when I run the project!)
>
> The below code compiles and runs, but the form's jTable1 is not populated with the data.
>
> Thanks for any help,
>
> ...
>
> import java.awt.BorderLayout;
> import java.awt.EventQueue;
> import javax.swing.*;
> import javax.swing.table.DefaultTableModel;
> import javax.swing.table.TableModel;
> import javax.swing.table.TableRowSorter;
>
> Runnable runner = new Runnable() {
> public void run() {
> //JFrame frame = new JFrame("Sorting JTable");
> //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> Object rows[][] = {
> {"AMZN", "Amazon", 41.28},
> {"EBAY", "eBay", 41.57},
> {"GOOG", "Google", 388.33},
> {"MSFT", "Microsoft", 26.56},
> {"NOK", "Nokia Corp", 17.13},
> {"ORCL", "Oracle Corp.", 12.52},
> {"SUNW", "Sun Microsystems", 3.86},
> {"TWX", "Time Warner", 17.66},
> {"VOD", "Vodafone Group", 26.02},
> {"YHOO", "Yahoo!", 37.69}
> };
> String columns[] = {"Symbol", "Name", "Price"};
> TableModel model =
> new DefaultTableModel(rows, columns) {
> public Class getColumnClass(int column) {
> Class returnValue;
> if ((column>= 0)&& (column< getColumnCount())) {
> returnValue = getValueAt(0, column).getClass();
> } else {
> returnValue = Object.class;
> }
> return returnValue;
> }
> };
>
> //JTable table = new JTable(model);
> RowSorter<TableModel> sorter =
> new TableRowSorter<TableModel>(model);
> jTable1.setRowSorter(sorter);
> JScrollPane pane = new JScrollPane(jTable1);
I don't think you want to be doing this.
I presume the jTable1 already exists, and has a parent.
> //frame.add(pane, BorderLayout.CENTER);
> //frame.setSize(300, 150);
> jPanel3.setVisible(true);
> jPanel3.add(pane, BorderLayout.CENTER);
> jTable1.setVisible(true);
> }
> };
> EventQueue.invokeLater(runner);
>
Nowhere that I can see are you setting the new table model in jTable1.
The code below works. It's just a basic JFrame app. created in NetBeans, with the code
inserted to set the model/sorter for the default table. If you don't change the model
the code will throw OOB exception because the model data in the sorter only has 3 columns,
and the default table created by Matisse has 4.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication2;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
/**
*
* @author NetBeans
*/
public class NewJFrame extends javax.swing.JFrame {
/**
* Creates new form NewJFrame
*/
public NewJFrame() {
initComponents();
Runnable runner = new Runnable() {
public void run() {
Object rows[][] = {
{"AMZN", "Amazon", 41.28},
{"EBAY", "eBay", 41.57},
{"GOOG", "Google", 388.33},
{"MSFT", "Microsoft", 26.56},
{"NOK", "Nokia Corp", 17.13},
{"ORCL", "Oracle Corp.", 12.52},
{"SUNW", "Sun Microsystems", 3.86},
{"TWX", "Time Warner", 17.66},
{"VOD", "Vodafone Group", 26.02},
{"YHOO", "Yahoo!", 37.69}
};
String columns[] = {"Symbol", "Name", "Price"};
TableModel model =
new DefaultTableModel(rows, columns) {
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
returnValue = getValueAt(0, column).getClass();
}
else {
returnValue = Object.class;
}
return returnValue;
}
};
RowSorter<TableModel> sorter =
new TableRowSorter<TableModel>(model);
jTable1.setModel(model);
jTable1.setRowSorter(sorter);
}
};
EventQueue.invokeLater(runner);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
NetBeans Application with sortable Table and pre-existing frame/table code clusardi2k@aol.com - 2012-07-23 10:54 -0700
Re: NetBeans Application with sortable Table and pre-existing frame/table code Lew <lewbloch@gmail.com> - 2012-07-23 12:55 -0700
Re: NetBeans Application with sortable Table and pre-existing frame/table code clusardi2k@aol.com - 2012-07-25 07:54 -0700
Re: NetBeans Application with sortable Table and pre-existing frame/table code clusardi2k@aol.com - 2012-07-25 08:14 -0700
Re: NetBeans Application with sortable Table and pre-existing frame/table code clusardi2k@aol.com - 2012-07-25 08:37 -0700
Re: NetBeans Application with sortable Table and pre-existing frame/table code Nigel Wade <nmw@ion.le.ac.uk> - 2012-07-25 16:40 +0100
Re: NetBeans Application with sortable Table and pre-existing frame/table code clusardi2k@aol.com - 2012-07-25 09:31 -0700
csiph-web