2

Javaでデフォルトのエディターを拡張して、テーブル用にカスタマイズされたエディターを作成しました。コードは次のようになります

import java.awt.Component;
import java.text.ChoiceFormat;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;

import com.ushustech.nmsazzist.model.mib.MibVariableModel;


public class MibFormattedValueEditor extends DefaultCellEditor
{

private JComboBox m_comboBox;
public MibFormattedValueEditor()
{
    this(new JComboBox());
}

public MibFormattedValueEditor(JComboBox comboBox)
{
    super(comboBox);
    this.m_comboBox = comboBox;
}

@Override
public Object getCellEditorValue()
{
    return this.m_comboBox.getSelectedItem();
}

@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
{
    this.m_comboBox.removeAllItems();
    MibVariableModel model = (MibVariableModel) table.getModel();
    ChoiceFormat format = model.getMibVariable(row).getFormat();

    if(null != format){
        Object[] obj = format.getFormats();
        for(int i=0;i<obj.length;i++){
            this.m_comboBox.addItem(obj[i].toString());
        }

    }

    return super.getTableCellEditorComponent(table, value, isSelected, row, column);

}

}  

フォーマットがnullの場合にテキストフィールドエディタを表示したいですか?これを行うために私を助けてください?ありがとう。

4

2 に答える 2

1

ComboBoxこれは汚れる可能性があるので、私は交換しません。の場合は編集可能に設定しformat == null、ユーザーがここに情報を入力できるようにします。このような:

if(null != format) {
   // ...
} else {
   this.m_comboBox.setEditable(true);
}
于 2012-11-14T10:00:05.797 に答える
-1

textFieldをデフォルトで非表示にし、フォーマットがnullの場合はtrueに設定して表示します。

textField.setVisible(true);
于 2012-11-14T09:55:38.003 に答える