この投稿はクローズされていないので、回答を投稿しても問題ないことを願っています。とにかく、そのレイアウトが、ラベルがすべての側面のハード境界に収まるように必要とするものでない限り、解決策はJLabel
独自のに入れ子にすることができると思います。JPanel
BorderLayout
GridLayout
これは問題の例です:
この例を示す SSCCE を次に示します。
import javax.swing.*;
import java.awt.*;
public class TruncationTest1
{
public static void main(String[] args)
{
JFrame f = new JFrame("Truncation Test");
JPanel panel = new JPanel(); //Default layout, AKA FlowLayout
JLabel label = new JLabel("Try resizing the frame: This will not be truncated for some reason.");
JLabel label2 = new JLabel("However, this JLabel, on the other hand, will become truncated.");
f.setSize((int)label.getPreferredSize().getWidth() + 40,65);
f.setLayout(new GridLayout(2,1));
f.setLocationRelativeTo(null);
f.setBackground(Color.BLACK);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(panel);
panel.setBackground(Color.WHITE);
panel.add(label);
f.add(label2);
label2.setHorizontalAlignment(JLabel.CENTER);
label2.setForeground(Color.WHITE);
f.setVisible(true);
}
}