The Artima Developer Community
Sponsored Link

Java Answers Forum
Help!About TableCellEditor

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
jungil

Posts: 5
Nickname: jungil
Registered: Aug, 2002

Help!About TableCellEditor Posted: Aug 13, 2002 5:35 AM
Reply to this message Reply
Advertisement
My source is like this:

package untitled9;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.util.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;

public class Untitled1 extends JFrame {
public Untitled1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {
this.setSize(new Dimension(479, 260));
getContentPane().setLayout(null);

this.setEnabled(true);

leftTable.setBounds(new Rectangle(41, 79, 71, 121));
leftTable.setModel(model1);
leftTable.setRowHeight(20);
TableColumnModel columnModel = leftTable.getColumnModel();
TableColumn column = columnModel.getColumn(0);

column.setCellEditor(new OMRDefaultCellEditor());
column.setCellRenderer(new OMRDefaultCellRender());

leftTable.setCellSelectionEnabled(true);
topTable.setBounds(new Rectangle(112, 79, 308, 20));
topTable.setModel(model2);
topTable.setRowHeight(20);
defaultTable.setBounds(new Rectangle(112, 99, 308, 101));
defaultTable.setModel(model3);
defaultTable.setRowHeight(20);
this.getContentPane().add(leftTable, null);
this.getContentPane().add(topTable, null);
this.getContentPane().add(defaultTable, null);
}

public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
;
}

Untitled1 unTitle = new Untitled1();

unTitle.show();
}

private JTable leftTable = new JTable();
private DefaultTableModel model1 = new DefaultTableModel(6,1);
private DefaultTableModel model2 = new DefaultTableModel(1,5);
private DefaultTableModel model3 = new DefaultTableModel(5,5);
private JList jList1 = new JList();
private DefaultListModel listModel = new DefaultListModel();
private JTable topTable = new JTable();
private JTable defaultTable = new JTable();
}

class OMRDefaultCellEditor implements TableCellEditor {
public OMRDefaultCellEditor() {
;
}
public void addCellEditorListener(CellEditorListener listener) {
listenerList.add(CellEditorListener.class,listener);
}

public void removeCellEditorListener(CellEditorListener listener) {
listenerList.remove(CellEditorListener.class,listener);
}

public void cancelCellEditing(){
;
}

public boolean stopCellEditing(){
fireEditingStopped();
return true;
}

protected void fireEditingStopped(){
CellEditorListener listener;
Object[] listeners=listenerList.getListenerList();
for(int i=0;i<listeners.length;i++){
if(listeners[i]==CellEditorListener.class){
listener=(CellEditorListener)listeners[i+1];
listener.editingStopped(changeEvent);
}
}
}

public boolean isCellEditable(EventObject event){
return true;
}
public boolean shouldSelectCell(EventObject event){
return true;
}

public Component getComponent() {
return component;
}

public Object getCellEditorValue() {
component.setSelectedValue(value, true);
return this.value;
}

public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected,
int row, int column) {
JList list = new JList();
list.setVisibleRowCount(1);
component = list;
DefaultListModel listModel = new DefaultListModel();
JScrollPane scrollPane = new JScrollPane();

JButton button = new JButton("^_^");
button.setBackground(Color.GREEN);

if(row == 0 && column == 0) return button;

list.setModel(listModel);
for(int i = 1; i <= 100; i++) {
listModel.addElement("" + i);
}
this.value = list.getSelectedValue();
this.component = list;
scrollPane.getViewport().add(list, null);
return scrollPane;
}

protected EventListenerList listenerList=new EventListenerList();
protected ChangeEvent changeEvent=new ChangeEvent(this);
private Object value = "" + 1;
private JList component;
}

class OMRDefaultCellRender implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,
boolean hasFocus,int row,int column) {
JList list = new JList();
DefaultListModel listModel = new DefaultListModel();
JScrollPane scrollPane = new JScrollPane();
JButton button = new JButton("^_^");
button.setBackground(Color.GREEN);

if(row == 0 && column == 0) return button;

list.setModel(listModel);
listModel.addElement("" + 1);
scrollPane.getViewport().add(list, null);
return scrollPane;
}
}

When i changed one JList's value and cliked another JList, the first JList's value can not be saved and changed to initial value.

how can i do for it?

Topic: Question of the Day Previous Topic   Next Topic Topic: help with adding image to applet

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use