1

1列にセルごとに3つのラジオボタンが含まれるJTableがあります

mgrdData.getColumnModel().getColumn(intCol).setCellRenderer(new RadioButtonRenderer());
RadioButtonEditor butEdit = new RadioButtonEditor(new JCheckBox());
mgrdData.getColumnModel().getColumn(intCol).setCellEditor(butEdit);

ラジオボタンが表示され、正しいものが選択されているため、これは正常に機能します。

ただし、ラジオボタンが大きすぎて完全に表示できないため、ラジオボタンの高さを減らしたいと考えています。

フォントサイズと .setSize() を変更してみましたが、ラジオボタンの高さには影響しませんでした。

たくさん検索した後、私が見つけることができたのは次のとおりでした:

btnVA.putClientProperty("JComponent.sizeVariant","mini");
btnUIT.putClientProperty("JComponent.sizeVariant","mini");
btnAAN.putClientProperty("JComponent.sizeVariant","mini");

ここで、btnVA、btnUIT、btnAAN は RadioButtonRenderer のラジオボタンです。

さらにコードを見たい場合はお知らせください。編集します。

ラジオボタンにこの ClientProperty を適用させるために追加する必要がある特別なものはありますか?

4

2 に答える 2

1

// setPreferredSize() を試してみてください。これが構文であることを確認してください。

代わりにメソッドを使用して、それが役立つかどうかを確認してください。私のクラスの誰かがこの問題を抱えていることを思い出してください。

于 2013-02-06T15:12:02.690 に答える
0

このコードには Nimbus LookAndFeel が必要であることを見落としていました。

さまざまな LookAndFeels で簡単にテストするために、アプレットの init() で呼び出す関数を作成しました。

private void setLaF()
{
  try
  {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels())
    {
      if ("Nimbus".equals(info.getName()))
      {
        UIManager.setLookAndFeel(info.getClassName());
        break;
      }
    }
  } catch (Exception e)
  {
      // If Nimbus is not available, you can set the GUI to another look and feel.
  }
}

この関数を呼び出した後、ラジオボタンは動作し、それに応じて高さを変更します

于 2013-02-06T15:19:55.873 に答える