相关疑难解决方法(0)

JTable与复杂的编辑器

我有很多针对JTable的自定义编辑器,并且认为可用性,特别是关于使用键盘编辑的可用性是缺乏的,这是轻描淡写的.

这样做的主要原因是我的编辑器总是创建一个类似的(虽然通常更复杂)的情况:

@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
  JPanel container = new JPanel();
  container.setLayout(new BorderLayout());
  container.add(field, BorderLayout.CENTER);
  field.setText((String) value);
  container.add(new JButton("..."), BorderLayout.EAST);
  return container;
}
Run Code Online (Sandbox Code Playgroud)

IE是一个内部有多个组件的面板.实际的文本编辑器是作为编辑器返回的组件的后代.所以,从我所知的问题来看,除了渲染问题之外,JTable正在关注getTableCellEditorComponent方法返回的组件,因此当您按下一个突出显示单元格的键时,它会通过焦点并按下按键到面板,认为是编辑器.
无论如何我可以通知JTable"真正的"编辑器是JTextfield吗?requestFocusInWindow在正确的组件上添加hacky 是不够的,因为按键不会被传递.

java user-interface swing editor jtable

8
推荐指数
1
解决办法
9266
查看次数

如何从JTable获取选定的RadioButton

我正在研究程序,我需要从Jtable获得所选的无线电接口

我找到了一个我正在工作的例子

有上课

第一名:

  import java.awt.Component;
  import java.awt.event.ItemEvent;
  import java.awt.event.ItemListener;

 import javax.swing.DefaultCellEditor;
 import javax.swing.JCheckBox;
 import javax.swing.JRadioButton;
 import javax.swing.JTable;
 import javax.swing.table.TableCellRenderer;

 class RadioButtonRenderer implements TableCellRenderer {
   public Component getTableCellRendererComponent(JTable table, Object value,
       boolean isSelected, boolean hasFocus, int row, int column) {
     if (value == null)
       return null;
     return (Component) value;
   }
 }

 class RadioButtonEditor extends DefaultCellEditor implements ItemListener {
   /**
     * 
      */
     private static final long serialVersionUID = 1L;
 private JRadioButton button;

   public RadioButtonEditor(JCheckBox checkBox) {
     super(checkBox);
   }

   public Component getTableCellEditorComponent(JTable …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jradiobutton buttongroup

1
推荐指数
1
解决办法
5782
查看次数