相对大小不工作



我一直在尝试使JLabel的大小相对于窗口的大小,但由于某种原因,这个JLabel没有出现在屏幕上。

这是我的maingi类中使用的代码,它包含基本接口:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainGUI extends JFrame{
    JPanel core;
    GridBagConstraints c;
    JLabel[] sts;
    public MainGUI(){
       core = new JPanel(new GridBagLayout()); 
       getContentPane().add(core, BorderLayout.CENTER);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setSize(500, 500); 

       sts = new JLabel[10];
       int width = (int)(66/100) * getWidth(), height = (int)(75/100) * getHeight();       //problem: due to these sizes the JLabel is not appearing
       for(int i = 0; i < sts.length; i++){ 
          sts[i] = new JLabel("test");
          sts[i].setOpaque(true);
          sts[i].setBackground(Color.BLACK);
          sts[i].setForeground(Color.BLACK);
          sts[i].setPreferredSize(new Dimension(width,height)); //size being set
       }

       c = new GridBagConstraints();
       c.gridx = 0;
       c.gridy = 0;
       core.add(sts[1], c);
    }
}

如果您能帮忙解决这个问题,我将不胜感激。

几个问题-

  1. 标签的前景色和背景色相同
  2. 你需要在标签
  3. 上设置一些文本
  4. 检查首选大小是否计算正确,因为如果该行被注释掉,则显示标签。计算出的高度和宽度为零。

这将始终返回零,因为除法的结果是int-

int width = (int)(66/100) * getWidth();

让它——

    int width = (int)(((float)66/100) * getWidth());

尝试RelativeLayout库。

相关内容

  • 没有找到相关文章

最新更新