Используйте GridLayout
на imgPanel
и добавьте метки с помощью петли. Обязательно центрируйте текст метки, используя SwingConstants.CENTER
.
Все метки будут на равном расстоянии друг от друга, и вам не нужно устанавливать какие-либо вставки или поля.
List<String> labels = Arrays.asList("STD", "AIRLINE", "DESTINATION", "FLIGHT", "GATE", "STATUS");
imgPanel.setLayout(new GridLayout(1, labels.size())); // 1 row, 6 columns
labels.stream().forEach(s -> {
JLabel label = new JLabel(s, SwingConstants.CENTER); // centered label text
label.setFont(new Font("Century Gothic", Font.BOLD, 28));
label.setForeground(new Color(255, 255, 255));
imgPanel.add(label);
});
Вы также можете просто установить макет перед тем, как начинать добавлять ярлыки, но это более громоздко и не динамично.
imgPanel.setLayout(new GridLayout(1, 6)); // Six labels tiled horizontally
И не забудьте центрировать текст вашего ярлыка.
schedHd = new JLabel("STD", SwingConstants.CENTER);
airlineHd = new JLabel("AIRLINE", SwingConstants.CENTER);
// etc...
I vastly prefer A to B. "!" is a programming idiom that should be understood by all.
Я голосую «А» , безусловно .
Дополнительное бремя обслуживания, связанное с выполнением этой функции для каждой и любой логической функции возврата, не стоит этого по сравнению с понятным и вполне читабельным «!», И фактически я считаю, что «B» на самом деле меньше ] читабельно, так как очень легко пропустить «Нет» в середине имени.
Если ! HasValue (y)
и HasNoValue (y)
гарантированно будут логически эквивалентны во всем входном диапазоне y
, тогда я бы предпочел ! HasValue (y)
.
Я бы не хотел, чтобы даже имел функцию с именем HasNoValue (y)
, потому что это неизбежно кто-то напишет ! HasNoValue (y)
.
Просто из-за того, что у вас меньше строк кода и потому что ваша функция возвращает логическое значение, я бы сказал, что нужно использовать метод А. Если вам нужно беспокоиться о читабельности, вы всегда можете попробовать :
if ( HasValue(x) && !(HasValue(y)) )
Я знаю, что останусь наедине с этим мнением, и если бы я столкнулся с этим выбором в совместном проекте, я бы, конечно, согласился с А, поскольку совершенно очевидно, что это правильно что нужно сделать, но я должен сказать, что я ценю многословие варианта B. Слова просто бесконечно легче читать и понимать, чем символику, даже если это что-то столь же приземленное, как наш любимый восклицательный знак
Особенно сейчас, когда у IDE гораздо лучше, чем раньше, интеллектуальный смысл, я обычно склоняюсь к гораздо большему многословию, чем раньше со всеми именами. 9 раз из 10, читаемость превосходит небольшие различия в производительности, руки вниз.
Я бы сказал, вариант А более понятен, вы точно знаете, что это значит.