gpt4 book ai didi

java - JSpinner 有时无法正常显示

转载 作者:行者123 更新时间:2023-12-02 07:17:45 26 4
gpt4 key购买 nike

我的问题是 JSpinner(在代码中名为 spinnerCantidadPuntas)有时根本不显示,或者只是有错误。当我运行项目(F6)时,它几乎肯定无法正确显示,当我调试它(​​CTRL+F5)时,它在大多数情况下都能正确显示。我不明白为什么。这是我使用的详细信息:

产品版本:NetBeans IDE 7.2.1(内部版本 201210100934) java :1.7.0_11; Java HotSpot(TM) 客户端虚拟机 23.6-b04系统:在 x86 上运行的 Windows 7 版本 6.1; Cp1252; es_VE(注释)

我做了一个项目,我在这里列出了所有类(class)的内容

    package estrella;
public class Main {
public static void main(String[] args) {
Interfaz f=new Interfaz();
}
}



package estrella;
import java.awt.Color;
import java.awt.Container;
import java.util.Hashtable;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
public class Interfaz extends JFrame {

Container c;

AreaDeDibujos lienzo;

JLabel lInfo,lCantidadPuntas,lTamanioEstrella,lLargoPuntas;
JSpinner spinnerCantidadPuntas;
JSlider sliderTamanioEstrella,sliderLargoPuntas;

public Interfaz(){

setTitle("Ejemplo <<Dibujo de primitivas y poligonos>> Version 1.0 (05/02/2013)");
setSize(1024,720);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);

c=getContentPane();
c.setBackground(new Color(240,250,245));
c.setLayout(null);

/*lienzo=new AreaDeDibujos();
lienzo.setBounds(25,25,800,600);

c.add(lienzo);*/

lInfo=new JLabel("Por favor, seleccione los parametros de la estrella a dibujar:");
lInfo.setBounds(10,10,350,20);
c.add(lInfo);

lCantidadPuntas=new JLabel("Numero de puntas de la estrella: ");
lCantidadPuntas.setBounds(10,35,350,20);
c.add(lCantidadPuntas);
spinnerCantidadPuntas=new JSpinner(new SpinnerNumberModel(7, //valor inicial
Estrella.MINIMO_PUNTAS, //valor minimo
Estrella.MAXIMO_PUNTAS, //valor maximo
1 // incremento/decremento (paso)
)
);
spinnerCantidadPuntas.setBounds(10,55,120,20);
c.add(spinnerCantidadPuntas);

lTamanioEstrella=new JLabel("Tamaño de la estrella (pixeles): ");
lTamanioEstrella.setBounds(10,80,350,20);
c.add(lTamanioEstrella);
sliderTamanioEstrella=new JSlider(
JSlider.HORIZONTAL,
AreaDeDibujos.TAMANIO_ESTRELLA_MINIMO,
AreaDeDibujos.TAMANIO_ESTRELLA_MAXIMO,
(int)(AreaDeDibujos.TAMANIO_ESTRELLA_MAXIMO/2)
);
Hashtable etiquetasDelSlider1 = new Hashtable();
int i,cantidadDeRayas,rango,paso,minimo,maximo,valorDeLaRaya;
minimo=AreaDeDibujos.TAMANIO_ESTRELLA_MINIMO;
maximo=AreaDeDibujos.TAMANIO_ESTRELLA_MAXIMO;
rango=maximo-minimo;
cantidadDeRayas=10;
paso=rango/cantidadDeRayas;
for(i=0;i<=cantidadDeRayas;i++){
valorDeLaRaya=minimo+paso*i;
etiquetasDelSlider1.put(new Integer (valorDeLaRaya), new JLabel(""+valorDeLaRaya));
}
sliderTamanioEstrella.setLabelTable( etiquetasDelSlider1 );
sliderTamanioEstrella.setPaintLabels(true);
sliderTamanioEstrella.setMajorTickSpacing(10);
sliderTamanioEstrella.setPaintTicks(true);
sliderTamanioEstrella.setBounds(10,100,350,60);
c.add(sliderTamanioEstrella);
}

}

package estrella;
public class Estrella {
public static final int MINIMO_PUNTAS=3,MAXIMO_PUNTAS=10;
}

package estrella;
public class GestorDeEventos {
}

package estrella;
import javax.swing.JComponent;
public class AreaDeDibujos extends JComponent {
public static final int TAMANIO_ESTRELLA_MINIMO=50,TAMANIO_ESTRELLA_MAXIMO=400;
}

我没有费心添加 Jar 文件,因为我知道人们不会认为它是病毒而想下载或运行它

最佳答案

“我的问题是 JSpinner”,实际上,这是缺少合适的布局管理器......

使用 null 布局管理器意味着每当您使容器失效(通过向其中添加某些内容)时,容器都不会以重绘管理器识别的方式更新自身。

setVisible(true); 移动到构造函数的末尾。

如果您使用布局管理器,则可以重新验证/重新绘制

关于java - JSpinner 有时无法正常显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14720322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com