Как можно сделать вывод в Java в Swing в JLabel со строкой, где есть символы с индексами и степенями? Например: вывод x^2 (x * x).Вывод Java, полномочий и индексов в UI
ответ
Вы могли бы ...
Сделать использование HTML поддержки JLabel
«s и использовать <sup>
(верхний индекс), например ...
public class TestPane extends JPanel {
public TestPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(new JLabel("<html>2<sup>*</sup>2"), gbc);
add(new JLabel("<html>2<sup>^</sup>2"), gbc);
}
}
Вы могли бы ...
Использовать поддержку юникода (при условии, что ваш шрифт поддерживает его)
public class TestPane extends JPanel {
public TestPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(new JLabel("2\u00B2"), gbc);
}
}
Посмотрите Unicode character table для более предложений
Wild угадаю - вы хотите, чтобы дисплей выглядеть красиво. Хорошо тогда:
Swing Components может отображать (ограниченное) HTML. Так что это на самом деле работает:
JLabel label = new JLabel("<html>a<sup>2</sup> * x<sub>2</sub> + x<sub>3</sub>");
JOptionPane.showMessageDialog(null, label);
создаст дисплей как
Использование
<sup>
для надстрочного или<sub>
для подстрочного
Также рассмотрите AttributedString
в своем собственном JComponent
, проиллюстрированном here и here.
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JPanel() {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
String s = "ax [m/s2]";
AttributedString as = new AttributedString(s);
as.addAttribute(TextAttribute.SIZE, 24, 0, 2);
as.addAttribute(TextAttribute.SIZE, 16, 3, 9);
as.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, 0, 2);
as.addAttribute(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUB, 1, 2);
as.addAttribute(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUPER, 7, 8);
g.drawString(as.getIterator(), 12, 32);
}
});
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
Как предложено [здесь] (http://stackoverflow.com/q/23975076/230513), используйте 'TextLayout' для границ. – trashgod
- 1. Интеграция inherited_resources и полномочий
- 2. Различные результаты в Java и Python при вычислении полномочий
- 3. Ввод и вывод в Java
- 4. java exec запускает программу python, в то время как python не имеет полномочий на ввод-вывод
- 5. Вывод результатов словаря для всех индексов
- 6. Ограничение полномочий Java EE для всех
- 7. Понимание ресурса и полномочий url
- 8. Сумма полномочий
- 9. Добавление полномочий в AuthenticationSuccessHandler
- 10. Двоичное дерево индексов в java
- 11. Список полномочий в Bash?
- 12. Проверка полномочий MQ и MCAUSER в Linux
- 13. Ввод и вывод файла Java
- 14. Ввод и вывод текста java
- 15. Проблемы с расшифровкой WebLogic полномочий
- 16. Вывод изображения в java
- 17. Странный вывод в Java
- 18. Форматированного вывод в Java
- 19. Общие методы и вывод типов в Java
- 20. Как отобразить вывод json-объекта в ui?
- 21. Вывод, необходимый в Java
- 22. Передача полномочий Kerberos через urlconnect?
- 23. прилагая индексов в многомерных массивов в Java
- 24. DynamoDBLocal Сбой по проверке полномочий
- 25. S3 Заголовок полномочий в swift
- 26. asynchronous UI в java
- 27. Описание полномочий Uber API
- 28. Класс полномочий пользователя/группы
- 29. Java Канадская программа почтовых индексов,
- 30. Поддержка Java для индексов C#
Вы попробуйте использовать юникоды для персонажей. Вы можете найти таблицу шрифтов для шрифта, который вы используете, чтобы увидеть, есть ли у него эти символы. Возможно, вы сможете использовать надстрочные возможности HTML – MadProgrammer