Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > NetBeans Application with sortable Table and pre-existing frame/table code

Reply
Thread Tools

NetBeans Application with sortable Table and pre-existing frame/table code

 
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-23-2012
I have an NetBeans application with a few controls. To this, I dragged a Swing Table control from the control palette. I'd like to use all of these and not use the below code.

The reason I don't want to use the below example is I cannot use the dragged in table above. I unsuccessfully tried to modify this code (the frame andtable variable names) to use the above dragged-in table with its pre-existing frame. But, when I try to do that I get error messages such as "non-static method add (...) cannot be referenced from a static context". I even tried instantiating a class object, but received similar error messages.

http://www.java-tips.org/java-se-tip...ng-tables.html

This linked example creates a table (columns which are sortable) but the new window is not docked anywhere.

Do you have a better example for me.

Thanks,
 
Reply With Quote
 
 
 
 
Lew
Guest
Posts: n/a
 
      07-23-2012
(unknown) wrote:
> I have an NetBeans application with a few controls. To this, I dragged a Swing Table control from the control palette. I'd like to use all of these and not use the below code.
>
> The reason I don't want to use the below example is I cannot use the dragged in table above. I unsuccessfully tried to modify this code (the frame and table variable names) to use the above dragged-in table with its pre-existing frame. But, when I try to do that I get error messages such as "non-static method add (...) cannot be referenced from a static context". I even tried instantiating a class object, but received similar error messages.


Each of those error messages can be solved by analysis and the right code changes.

Giving up on error messages is a recipe for failure.

> http://www.java-tips.org/java-se-tip...ng-tables.html


Where's *your* code?

http://sscce.org/

> This linked example creates a table (columns which are sortable) but the new window is not docked anywhere.
>
> Do you have a better example for me.


Do you have a better example for us?

--
Lew

 
Reply With Quote
 
 
 
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-25-2012
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 createsa 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-tip...ng-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_CLOS E);
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);
//frame.add(pane, BorderLayout.CENTER);
//frame.setSize(300, 150);
jPanel3.setVisible(true);
jPanel3.add(pane, BorderLayout.CENTER);
jTable1.setVisible(true);
}
};
EventQueue.invokeLater(runner);

 
Reply With Quote
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-25-2012
With the below, line of code I get the same result of no table displayed.

jPanel3.add(pane);
 
Reply With Quote
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-25-2012
The below 2 additional attempts also are failing (each yields the same result). jInternalFrame1 (class JInternalFrame) was dragged to the designer form from the NetBeans swing Palette.

(Another Attempt)
JTable jTable1 = new JTable(model);
RowSorter<TableModel> sorter =
new TableRowSorter<TableModel>(model);
jTable1.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(jTable1);
//frame.add(pane, BorderLayout.CENTER);
//frame.setSize(300, 150);
jInternalFrame1.add(pane, BorderLayout.CENTER);
jInternalFrame1.setVisible(true);


(And Yet Another Unsuccessful Attempt)
//JTable table = new JTable(model);
RowSorter<TableModel> sorter =
new TableRowSorter<TableModel>(model);
jTable1.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(jTable1);
//frame.add(pane, BorderLayout.CENTER);
//frame.setSize(300, 150);
jInternalFrame1.add(pane, BorderLayout.CENTER);
jInternalFrame1.setVisible(true);
 
Reply With Quote
 
Nigel Wade
Guest
Posts: n/a
 
      07-25-2012
On 25/07/12 15:54, http://www.velocityreviews.com/forums/(E-Mail Removed) 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-tip...ng-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_CLOS E);
> 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.WindowConstan ts.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.TRAILI NG, 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/tu...feel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClass Name());
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
}

 
Reply With Quote
 
clusardi2k@aol.com
Guest
Posts: n/a
 
      07-25-2012
On Wednesday, July 25, 2012 11:40:20 AM UTC-4, Nigel Wade wrote:

It works great.
Thank you,
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
sortable table in python 3.0 Peter Pei Python 1 02-08-2009 06:30 PM
Sortable Java Tree Table yccheok Java 1 12-27-2007 11:31 PM
Again: 2D-Array/Table but sortable asc/desc by column for different datatypes Henri =?ISO-8859-15?Q?Schom=E4cker?= C++ 1 12-17-2005 02:47 PM
Sortable Table dmsc17454_2 Javascript 3 07-16-2004 05:51 PM
Making WebFX sortable table to work in IE Andrus Javascript 0 07-02-2003 08:26 PM



Advertisments