Рисование значков-флажков в пользовательском JComponent: Scala - PullRequest
0 голосов
/ 30 сентября 2011

Я создаю пользовательский компонент scala, для которого требуется непроверенный значок в (100,100) и отмеченный значок в (200,100), те же значки, которые используются в Swing.Мой код ниже работает, но выглядит довольно странно, потому что мне нужно создать фиктивные флажки.Есть ли стандартный способ сделать это?(Нет, я не пытаюсь добавить компоненты в контейнер и т. Д. И т. Д. ... это не проблема управления макетом ... пытаюсь создать пользовательский компонент)


val comp = new JComponent() {


override def paintComponent(g:Graphics) {
    val cb1 = new JCheckBox()
    val cb2 = new JCheckBox()
    cb2.setSelected( true )
    val icon = UIManager.getIcon("CheckBox.icon")
    icon.paintIcon( cb1, g, 100,100)
    icon.paintIcon( cb2, g, 200,100)
  }
}
val f = new JFrame
f.getContentPane().setLayout( new BorderLayout )
f.getContentPane().add( comp , BorderLayout.CENTER )
f.pack
f.show

1 Ответ

4 голосов
/ 30 сентября 2011

Вы не должны определять компоненты в пределах paintComponent. Определите их в конструкторе компонента, чтобы они не переопределялись при каждой перерисовке компонента.

Стандартное действие, если вы не хотите, чтобы пользователь изменял значения флажков, - это использовать setEnabled(false).

Кроме того, вы пытались использовать пакет scala.swing?

...