Java 相对大小调整不起作用

Java 相对大小调整不起作用,java,swing,user-interface,sizing,Java,Swing,User Interface,Sizing,我一直在尝试制作一个与窗口大小相对应的JLabel,但由于某些原因,这个JLabel没有出现在屏幕上 这是我的MainGUI类中使用的代码,该类包含基本界面: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MainGUI extends JFrame{ JPanel core; GridBagConstraints c; JLabel[] sts;

我一直在尝试制作一个与窗口大小相对应的JLabel,但由于某些原因,这个JLabel没有出现在屏幕上

这是我的MainGUI类中使用的代码,该类包含基本界面:

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);

    }

}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类MainGUI扩展JFrame{
JPanel核心;
gridc;
JLabel[]sts;
公共MainGUI(){
core=newJPanel(newGridBagLayout());
getContentPane().add(核心,BorderLayout.CENTER);
setDefaultCloseOperation(关闭时退出);
设置大小(500500);
sts=新的JLabel[10];
int-width=(int)(66/100)*getWidth(),height=(int)(75/100)*getHeight();//问题:由于这些尺寸,JLabel不会出现
对于(inti=0;i
如果您能帮助我们找到解决方案,我们将不胜感激。请提前感谢。

试试图书馆。这里有一个教程。

有几期-

  • 标签的前景色和背景色相同
  • 您需要在标签上设置一些文本
  • 检查首选尺寸的计算是否正确,因为如果注释掉该行,将显示标签。计算的高度和宽度为零
  • 当除法的结果为int时,它将始终返回零-

    int width = (int)(66/100) * getWidth();
    
    成功-

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

    您是否尝试过为标签设置文本值,以便它可以显示一些内容?是的,是的,但仍然没有。