Results 1 to 3 of 3
Thread: Need help with JTable
- 03-22-2010, 01:14 PM #1
Member
- Join Date
- Mar 2010
- Posts
- 3
- Rep Power
- 0
Need help with JTable
Hi,
I am new to swing and I need help with Jtable. I have a code that displays records dynamically. I have set a max record attribute so that only those many rows are shown at any particular time (lets say 10). After that the new records should come from 1st row again. I am able to achieve that but I still have problem. When the 11th record comes, previous records (like 10th, 9th, 8th, 7th...) all vanish. I wanted to achieve a way of display where I the new records just overwrite from the top, but I just don't know how. Below is the code,
------>
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import com.ge.med.terra.jami.DemoUtils;
import com.ge.med.terra.jami.XpImageViewport;
public class SmartPrepTextDemo extends JPanel {
private JPanel msgPanel = new JPanel();
private JLabel msgText = new JLabel("Text");
private JTextField Elapsed = new JTextField("Elapsed Time=");
// private JButton jb_start = new JButton("");
static String formatString = "%02d:%02d";
private JTable table;
private DefaultTableModel defaultModel;
// private int max_records = 0;
private int set_count = 1;
int sec_trigger;
int d = 2;
int counter = 0;
// private JLabel TimeVal = new JLabel();
// private JButton jb_stop = new JButton("");
javax.swing.Timer timer;
javax.swing.Timer timer2;
SimpleDateFormat timef = new SimpleDateFormat("mm:ss");
String formattedTime;
long ref = System.currentTimeMillis();
public SmartPrepTextDemo(){
msgPanel.setLayout(new BorderLayout());
this.setLayout(new BorderLayout());
add(msgPanel, BorderLayout.CENTER);
msgPanel.add(Elapsed, BorderLayout.SOUTH);
Timer timer = new javax.swing.Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
long currentDate = System.currentTimeMillis();
long elapsedSeconds = (currentDate - ref)/1000;
int minutes = (int) (elapsedSeconds / 60);
int seconds = (int)(elapsedSeconds % 60);
formattedTime = String.format(formatString, minutes, seconds);
Elapsed.setText("Elapsed Time = " + formattedTime);
sec_trigger = seconds;
if((sec_trigger % d) == 0){
my_actionPerformed(e);
counter++;
}
}
});
timer.start();
table = new JTable();
defaultModel = new DefaultTableModel(0,(getMyCount()+1));
setModel(defaultModel);
table.setShowHorizontalLines( false );
table.setShowVerticalLines( false );
table.setShowGrid( false );
table.getAutoscrolls();
Vector vHead = new Vector();
vHead.addElement( "Time" );
for(int i=1; i<=getMyCount(); i++){
vHead.addElement( "My" + i );
}
((DefaultTableModel)table.getModel()).addRow(vHead );
/* jb_start.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e) {
my_actionPerformed(e);
}
});*/
msgPanel.add(table, BorderLayout.CENTER);
}
// Standard main stub.
public static void main(String[] args) {
JFrame frame = new JFrame("Smart Prep Demo");
SmartPrepTextDemo rd = new SmartPrepTextDemo();
frame.setBounds(100, 100,512,512);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setContentPane(rd);
frame.setVisible(true);
}
protected void my_actionPerformed (ActionEvent e){
Vector vBody = new Vector();
vBody.add( executeTime() );
for(int i=1;i<=getMyCount(); i++){
vBody.add(getMyValue(i));
}
if(recordInView()){
((DefaultTableModel)table.getModel()).addRow(vBody );
}
else{
((DefaultTableModel)table.getModel()).setRowCount( set_count);
((DefaultTableModel)table.getModel()).addRow(vBody );
}
}
private String executeTime(){
timer2 = new javax.swing.Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
long currentDate = System.currentTimeMillis();
long elapsedSeconds = (currentDate - ref)/1000;
int minutes = (int) (elapsedSeconds / 60);
int seconds = (int)(elapsedSeconds % 60);
formattedTime = String.format(formatString, minutes, seconds);
}
});
return formattedTime;
}
public void setModel(TableModel model)
{
table.setModel(model);
}
public boolean isLastCell()
{
int rows = table.getRowCount();
int cols = table.getColumnCount();
int selectedRow = table.getSelectedRow();
System.out.println(rows);
System.out.println(cols);
int selectedCol = table.getSelectedColumn();
if((rows == (selectedRow+1)) && (cols == (selectedCol+1)))
return true;
else
return false;
}
public int getMyCount(){
int i = 3;
return i;
}
public String getMyValue(int i){
switch (i) {
case 1: return "-0.10";
case 2: return "-0.20";
case 3: return "-0.30";
case 4: return "-0.40";
case 5: return "-0.50";
case 6: return "-0.60";
default: return "-0.90";
}
}
public boolean recordInView(){
System.out.println("--->" + table.getRowCount());
if (table.getRowCount() <= 10) return true;
else return false;
}
}
------ >
I don't expect a complete solution but any suggestion as to how I can proceed to achieve that, would be great!
Many thanks,
Murali
- 03-22-2010, 01:21 PM #2
- Join Date
- Jul 2007
- Location
- Colombo, Sri Lanka
- Posts
- 11,374
- Blog Entries
- 1
- Rep Power
- 18
I suggest you to go thorough the all example in the following page.
How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
- 03-23-2010, 05:07 PM #3
Eranga is right. The short answer lies in your TableModel and RowSorter implementations.
The Java Tutorial. Read it.
Similar Threads
-
Adding New JTable in JTable
By anilkumar_vist in forum New To JavaReplies: 0Last Post: 01-27-2010, 08:27 AM -
JTable
By hedonist in forum New To JavaReplies: 3Last Post: 10-27-2009, 11:30 PM -
Regarding the JTable
By suresh.uvce in forum AWT / SwingReplies: 5Last Post: 02-11-2009, 06:46 AM -
Jtable duplicates through Hashtable (JTable condition problem) my assignment plz help
By salmanpirzada1 in forum Advanced JavaReplies: 2Last Post: 05-15-2008, 10:15 AM -
Help with JTable
By fernando in forum AWT / SwingReplies: 1Last Post: 08-07-2007, 06:57 AM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks