设置jLabel摆动的大小

时间:2014-11-24 10:30:07

标签: java swing jlabel

我想在jLabel内设置dimension(50,75) JFrame

我尝试使用

label.setPreferredSize(new Dimension(50, 75)); 

但它不起作用。 我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

setPreferredSize确实改变了标签的大小,您应该尝试使用setBorder方法绘制边框来验证新的大小,但如果您想要大的话,字体大小不会改变字体尝试调用setFont并设置新的字体大小,这里有一些代码开头:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.LineBorder;

public class Test {
    public static void main(String[] args) {
        JFrame t = new JFrame();
        t.setBounds(100, 100, 500, 400);
        JLabel l = new JLabel("Hello");
        // new font size is 20
        l.setFont(new Font(l.getFont().getName(), l.getFont().getStyle(), 20));
        // draw label border to verify the new label size
        l.setBorder(new LineBorder(Color.BLACK));
        // change label size
        l.setPreferredSize(new Dimension(200, 200));
        t.getContentPane().setLayout(new FlowLayout());
        t.add(l);
        t.setVisible(true);
    }
}

答案 1 :(得分:0)

简单示例:

class Testing extends JFrame  
{  
  int counter = 1;  
  javax.swing.Timer timer;  
  public Testing()  
  {  
    setSize(100,50);  
    setLocation(300,100);  
    setDefaultCloseOperation(EXIT_ON_CLOSE);  
    JPanel p = new JPanel();  
    final JLabel label = new JLabel("1",JLabel.CENTER);  
    label.setBorder(BorderFactory.createLineBorder(Color.BLACK));  
    Dimension d = label.getPreferredSize();  
    //label.setPreferredSize(new Dimension(d.width+60,d.height));//<-----------  
    p.add(label);  
    getContentPane().add(p);  
    ActionListener al = new ActionListener(){  
      public void actionPerformed(ActionEvent ae){  
        counter *= 10;  
        label.setText(""+counter);  
        if(counter > 1000000) timer.stop();}};  
    timer = new javax.swing.Timer(1000,al);  
    timer.start();  
  }  

答案 2 :(得分:-1)

使用JLabel setBounds(x, y, width, height)方法

移动并调整此组件的大小。左上角的新位置由x和y指定,新大小由宽度和高度指定。

答案 3 :(得分:-1)

您必须使用LayoutManager,然后必须调用包方法。

LayoutManager尝试排列子组件,pack()获取这些子组件的首选大小。

  

public void pack()

     

使此窗口的大小适合其子组件的首选大小和布局。如果任一维度小于上一次调用setMinimumSize方法所指定的最小大小,则会自动放大窗口的最终宽度和高度。如果窗口和/或其所有者尚未显示,则在计算首选大小之前,它们都可显示。窗口在计算其大小后进行验证。