Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JLabel文本完成_Java_Swing_Jlabel_Settext - Fatal编程技术网

Java JLabel文本完成

Java JLabel文本完成,java,swing,jlabel,settext,Java,Swing,Jlabel,Settext,我有一个JLabel,其文本大于宽度大小,因此文本显示如下: 我想要的是,文本显示如下所示: 我不能改变尺寸标签的宽度是我放的尺寸所必需的 以下是几行: Cuadros[5].setText("Auto Incremet"); Cuadros[5].setSize(ImgA(Cuadros[5]), ImgL(Cuadros[5])); 谢谢你的建议, 我希望你能理解我的想法:试试下面的 final JLabel label = ... ... label.setText("protot

我有一个JLabel,其文本大于宽度大小,因此文本显示如下:

我想要的是,文本显示如下所示:

我不能改变尺寸标签的宽度是我放的尺寸所必需的 以下是几行:

Cuadros[5].setText("Auto Incremet");
Cuadros[5].setSize(ImgA(Cuadros[5]), ImgL(Cuadros[5]));
谢谢你的建议, 我希望你能理解我的想法:试试下面的

 final JLabel label = ...
...
label.setText("prototype text to define size");
final Dimension size = label.getPreferredSize();
label.setMinimumSize(size);
label.setPreferredSize(size);
...
label.setText(...);

这篇文章还没有结束,所以我希望发布一个答案是可以的。无论如何,我相信一个解决方案可以是将您的
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);
    }
}

我相信OP表示他不想重新调整标签的尺寸。他似乎在寻找一种自定义的方式来处理文本截断。让他们来帮你吧。