Моя программа записывает текст в JProgressBar. Проблема в том, что текст шире ширины JProgressBar.Переполнение текста JProgressBar
Я уже изменил высоту JProgressBar, чтобы писать текст по двум строкам, но я не хочу менять ширину.
Как изменить переполнение JProgressBar, чтобы текст возвращался на следующую строку, если он слишком широк?
Я надеюсь, что это достаточно ясно :)
Вот что я хотел бы:
Благодаря
EDIT
После @mKorbel РЕПЛ у результат выглядит следующим образом:
Ярлык работает довольно хорошо, но почему эти полосы?
Мой код:
// Construct progress bar
JProgressBar progressBar = new JProgressBar(0, 100);
// Set progressBar color
progressBar.setForeground(new Color(0,176,80));
// Edit progress bar height
Dimension prefSize = progressBar.getPreferredSize();
prefSize.height = 50;
progressBar.setPreferredSize(prefSize);
// Set the layout
progressBar.setLayout(new BorderLayout(5, 5));
// Set progress bar value
progressBar.setValue(38);
// Construct the label
JLabel progressLabel = new JLabel("<html>I have already changed the JProgressBar's height to be able to write the text on two lines but I don't want to the change the width.</html>");
// Set alignment
progressLabel.setHorizontalAlignment(JLabel.CENTER);
progressLabel.setVerticalAlignment(JLabel.CENTER);
// Set the borders
progressLabel.setBorder(new EmptyBorder(15, 15, 15, 15));
// Change the font
font = progressLabel.getFont();
font = font.deriveFont(Font.BOLD, 12);
progressLabel.setFont(font);
// Add label to the progress bar
progressBar.add(progressLabel, BorderLayout.CENTER);
// Add progress bar to the frame
frame.add(progressBar);
Одно предложение привязать размер шрифта текста с шириной и сделать функцию таким образом, чтобы каждый раз, когда добавляется текст, который FontSize рассчитывается по ширине она должна отображаться в :) –
Это может быть решением, но если слишком много символов, текст может быть очень маленьким и не читаемым. – Maxbester
Да, это правда @MAxbester –