Компонент содержит геттеры и сеттеры для font
, поэтому канонический способ установить шрифт:
class Foo extends Component {
font = new java.awt.Font(/* blah blah */)
}
Если вы хотите переопределить определение шрифта для использования переменной var, , вы должны использовать что-то, совместимое с scala.swing.Font
, что обертывает шрифты Java (обычно это делается с неявными преобразованиями). Вот так:
class Foo extends Component {
override var font: scala.swing.Font =
new java.awt.Font("Helvetica", java.awt.Font.BOLD, 12)
}
Я не уверен, что это будет делать то, что вы хотите. (Edit: протестировано в сеансе REPL с загруженным слишком много мусора; вам на самом деле не нужно это делать! Простое переопределение var font = new java.awt.Font работает.) Обычный getter / setter предназначен для передачи информация о соединении с javax.swing
. Если вы сделаете это таким образом, вы, вероятно, сломаете эту пересылку. Так что используйте первый метод.
Отредактируйте, если вы пытаетесь сделать это в java.awt.Component
: Font font;
- это личное поле в java.awt.Component
. Вы не можете переопределить поля в Java, и вы не можете делать что-либо с закрытыми полями в Java. Поэтому попытка переопределить его с помощью новой переменной гарантированно не сработает. (Однако компилятор, безусловно, может выдать более информативное сообщение об ошибке!) Scala может переопределять только поля, потому что они на самом деле не поля - это пара получатель / установщик, ссылающаяся на скрытое базовое поле.
Вы должны использовать (или переопределить) getFont
и setFont
.