Есть ли способ автоматически центрировать вычерченную строку, не делая ее вручную? Или вам придется делать это вручную каждый раз?Как центрировать drawString?
1
A
ответ
3
Поскольку это графический интерфейс Swing, я собираюсь предложить вам сконцентрироваться на графическом интерфейсе - поместите текст в JLabel с горизонтальным выравниванием, установленным на SwingConstants.CENTER
, и поместите JLabel в такие способ, которым он тоже центрирован, скажем, в контейнере BorderLayout, находящемся в позиции BorderLayout.PAGE_START, и бинго, ваш текст центрирован.
Например, следующий код показывает, как:
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.*;
public class CenteredText extends JPanel {
private static final String TOP_TEXT = "Top Text";
private static final String CENTER_TEXT = "Center Text";
private static final String BOTTOM_TEXT = "Bottom Text";
public CenteredText() {
JLabel topLabel = new JLabel(TOP_TEXT, SwingConstants.CENTER);
topLabel.setFont(topLabel.getFont().deriveFont(Font.BOLD, 20f));
JLabel centerLabel = new JLabel(CENTER_TEXT, SwingConstants.CENTER);
centerLabel.setFont(centerLabel.getFont().deriveFont(Font.BOLD, 80f));
int ebGap = 20;
centerLabel.setBorder(BorderFactory.createEmptyBorder(ebGap, ebGap, ebGap, ebGap));
JLabel bottomLabel = new JLabel(BOTTOM_TEXT, SwingConstants.CENTER);
bottomLabel.setFont(bottomLabel.getFont().deriveFont(Font.PLAIN, 8f));
setLayout(new BorderLayout());
add(topLabel, BorderLayout.PAGE_START);
add(centerLabel, BorderLayout.CENTER);
add(bottomLabel, BorderLayout.PAGE_END);
}
private static void createAndShowGui() {
CenteredText mainPanel = new CenteredText();
JFrame frame = new JFrame("CenteredText");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
Смежные вопросы
- 1. Как центрировать drawString в Java?
- 2. Как центрировать вывод текста drawString в Java
- 3. Как сделать drawString() полужирным?
- 4. Как использовать DrawString без обрезки?
- 5. Как отменить drawstring от gdiplus?
- 6. Graphics2D drawString() другой цвет
- 7. JPanel drawString оставляя строки
- 8. Ограничение Java drawString?
- 9. Java drawString, параллельный строке
- 10. C# Drawstring Letter Spacing
- 11. Java Graphics2D DrawString
- 12. Графика DrawString перенос слов
- 13. Weird DrawString поведение
- 14. DrawString graphics dissappearing
- 15. DrawString с оберткой символов
- 16. PDFsharp DrawString line height
- 17. написать переменную с drawstring()
- 18. drawString неправильно записывает строки
- 19. .net Ошибка DrawString/StringFormat
- 20. Drawstring перекрывает друг друга?
- 21. DrawString над TextBox
- 22. drawString в BufferedImage исчезает
- 23. Метод drawString не работает
- 24. ReportLab Wrap with drawstring
- 25. DrawString(), похоже, не работает
- 26. DrawString Not Drawing String
- 27. Ошибка анимации Swing - drawString
- 28. drawString with Rectangle border
- 29. Java-textwrap with drawString()
- 30. Класс - Графика - drawString()
В каком контексте? В графическом интерфейсе? В текстовом файле? На консоли? Если вы имеете в виду GUI, то какая библиотека? Свинг? AWT? Android? Другие? –
Возможно, в графическом интерфейсе с использованием библиотеки графики – Antidisestablishmentarianism
Возможно, здесь не возможно. Либо вы используете графический интерфейс, либо нет. Если это так? Иначе ответ сильно отличается. –