Как я могу лучше всего исправить эту ошибку jcombobox на macos, которая не была зафиксирована до Java 20?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу лучше всего исправить эту ошибку jcombobox на macos, которая не была зафиксирована до Java 20?

Сообщение Anonymous »

рендеринг jcombobox после вызова SetediTable (true) на MacOS выглядит плохо. Мне очень нравится 99,9% AqualookandFeel, поэтому я не буду переходить на MetallookandFeel. Приложение требует, чтобы Java 20 тоже не произойдет. Я предпочитаю обойти проблему. Мне бы очень понравилось, если я смогу сделать это так, как это происходит при использовании Java 20 или новее. Я боролся с LLM и надеюсь, что кто -то может вспомнить, что я должен сделать. Мое ворчание с границами и живописью до сих пор было менее чем полезным. Я бы проверил Java 20 OpenJDK и реализовал исправление в моем коде, но это не звучит легко. Похоже, что высота JTextfield (плюс границ) чуть меньше, чем jbutton , и кажется, что граница для JTextfield немного более узкая, чем граница для jbutton . Конечно, он также висит ниже Jbutton .

Код: Выделить всё

import javax.swing.*;
import java.awt.*;

public class ComboBoxMVCExample {
public static void main (String[] args) throws Exception {
SwingUtilities.invokeLater(ComboBoxMVCExample::createAndShowGUI);
}
private static void createAndShowGUI () {
LookAndFeel laf = UIManager.getLookAndFeel();
System.out.println("Look and Feel name: " + laf.getClass().getName());
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] items = {"Apple", "Banana"};
JComboBox editableCombo = new JComboBox(items);
editableCombo.setEditable(true);
JComboBox nonEditableCombo = new JComboBox(items);
nonEditableCombo.setEditable(false);
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
panel.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 4));
panel.add(new JLabel("Editable"));
panel.add(editableCombo);
panel.add(new JLabel("Not Editable"));
panel.add(nonEditableCombo);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}




Подробнее здесь: https://stackoverflow.com/questions/797 ... il-java-20
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»