на этот вопрос не может быть полного ответа (поверьте мне, когда я говорю, что он слишком сложный, я реализую его с нуля, и это уже 4 месяца, и я даже не знаю, близок ли я к этому!).
Мой вопрос заключается в том, способны ли эти элементы "переопределить" эти начальные значения компонентов по умолчанию
да и нет, они могут изменитьсятакие свойства, но они обязаны чтить их.Кроме того, большинство начальных значений являются первыми отображаемыми значениями внешнего вида, здесь это даст вам подсказку о том, что произошло при вашей первой печати
, реальный ответ будет проверятьComponentUI
реализация того, о чем вы спрашиваете.
вы - кодер, так что вы не удивитесь, узнав, что они могут измениться, так же, как любой код вне оригинальной упаковки (так каккод - это код !!).
Я проверил предыдущее значение (JButton.hor HorizontalAlignment) с использованием внешнего вида Java, внешнего вида моей системы (Windows 10) и Nimbus.Значение, кажется, остается прежним.Но как насчет других L & F или других значений из других Компонентов?
у каждого объекта пользовательского интерфейса есть метод с именем installUI(JComponent c)
этот ответ на вопрос оборачивается вокруг этого метода, этот метод вызывается при изменении пользовательского интерфейсаи в зависимости от их реализации, они изменяют некоторые свойства в соответствии с их потребностями (например, возьмем любой из темных L & F в качестве примера, их реализация для AbstractButton
ui должна будет установить фон темным цветом, а передний план -яркий цвет, чтобы текст отображался, поскольку он темный).
"Что может изменить внешний вид и ощущение"
Многие люди думают, что пользовательский интерфейс контролирует маленькийбиты компонента, но в действительности это все от пользовательского интерфейса !!например, у AbstractButton
есть текст, многие думают, что пользовательский интерфейс не несет ответственности за его отображение, но это наоборот! если пользовательский интерфейс не вызывал Graphics.drawString(AbstractButton.getText(),x,y)
(или что-то эквивалентное) где-то в их paint(Graphics g,JComponent c)
методе noтекст будет
, поэтому краткий ответ на ваш вопрос «каждая вещь на экране».