我的問題是,JSpinner(在代碼中命名爲spinnerCantidadPuntas)有時根本不顯示,或者只是有bug。當我運行項目(F6)時,它幾乎保證不能正常顯示,當我調試它(CTRL + F5)時,它大部分時間顯示正常。我不知道爲什麼。繼承人使用什麼即時通訊的詳細信息:JSpinner有時無法正常顯示
產品版本:NetBeans IDE 7.2.1(內部版本201210100934) Java:1.7.0_11; Java HotSpot(TM)客戶機VM 23.6-b04 系統:在x86上運行的Windows 7版本6.1; CP1252; es_VE(NB)
我做了一個項目,即時通訊列出所有類別的,我沒有打擾添加一個JAR文件,因爲我知道脂肪酶不會想下載或運行它以爲它是一個內容在這裏
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;
}
病毒
非常有啓發性的答案。您提供的解決方案非常完美。我會在幾分鐘內將您的答案標記爲已接受 –