Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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实例只显示8行?_Java_Swing_Layout_Jlabel - Fatal编程技术网

Java 为什么JLabel实例只显示8行?

Java 为什么JLabel实例只显示8行?,java,swing,layout,jlabel,Java,Swing,Layout,Jlabel,下面是代码片段: import java.awt.BorderLayout; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JP

下面是代码片段:

import java.awt.BorderLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

/**
 *
 * @author mohammadfaisal
 * http://ermohammadfaisal.blogspot.com
 * http://facebook.com/m.faisal6621
 * 
 */
public class CodeMagnets extends JFrame{
    private JTextArea area4Label;
    private JLabel codeLabel;
    private JButton createButton;
    private JPanel magnet;

    public CodeMagnets(String title) throws HeadlessException {
    super(title);
    magnet=new JPanel(null);
    JScrollPane magnetScroller=new JScrollPane(magnet);
    magnetScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    magnetScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    add(BorderLayout.CENTER, magnetScroller);
    JPanel inputPanel=new JPanel();
    area4Label=new JTextArea(5, 30);
    area4Label.setTabSize(4);
    JScrollPane textScroller=new JScrollPane(area4Label);
    inputPanel.add(textScroller);
    createButton=new JButton("Create code magnet");
    createButton.addActionListener(new MyButtonListener());
    inputPanel.add(createButton);
    add(BorderLayout.SOUTH, inputPanel);
    //pack();
    setSize(640, 480);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    class MyButtonListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        codeLabel=new CodeLabel(area4Label.getText());
        codeLabel.setSize(getPreferredSize());
        codeLabel.setLocation(10, 10);
        magnet.add(codeLabel);
        magnet.repaint();
    }
    }

    public static void main(String[] args) {
    new CodeMagnets("Code Magnets");
    }
}

这里生成的标签有大而宽的边框。我希望它更小,并且必须显示我想要的行数(通过使用html创建标签)


帮帮我

在按钮侦听器中,您正在使用

codeLabel.setSize(getPreferredSize());
在该代码的上下文中,
CodeMagnets
实例上调用了
getPreferredSize()
。我认为这应该是:

codeLabel.setSize(codeLabel.getPreferredSize());

尝试在你的问题上附加一个屏幕截图。还有,你确定边界又大又宽吗?如果在太大的容器中使用,它可能是元素本身。您已经尝试过哪些布局?@user309483:我已经添加了屏幕截图。
标签
是使用
html
创建的,文本区域中键入的文本是“
这是一个使用html创建的标签。
它的边框太大
并且
仅清晰显示8行。
所有其他行都被修剪。
正如您在本例中所看到的。
就是它。
”@user309483:标签是可拖动的,并添加在
面板上,因此我要将
布局设置为空。
codeLabel.setSize(codeLabel.getPreferredSize());