2

私のプログラムは JProgressBar にテキストを書き込みます。問題は、テキストが JProgressBar の幅よりも広いことです。

JProgressBar の高さを 2 行で記述できるように変更しましたが、幅を変更したくありません。

JProgressBar のオーバーフローを変更して、幅が広すぎる場合にテキストを次の行に戻すにはどうすればよいですか?

これが十分に明確であることを願っています:)

これが私が望むものです:

JProgressBar のオーバーフロー

ありがとう


編集

@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);
4

2 に答える 2