Quick picture to show what is happeningJava JSpinner繪畫兩次
JSpinner出現兩次,如上圖所示。點(0,0)處的第一個不應出現的外觀不可選,不可編輯或可使用,而沒有微調按鈕。
這裏的奇怪之處在於,每個其他組件都沒有問題。只有jspinner。我正在使用Java 7並在Netbeans中開發(而不是gui開發工具包)。這是Java 7的錯誤嗎?如果不是,我可以嘗試在我指定的區域中只使用一次JSpinner塗料?
代碼來說明這個問題:
我將它添加到JPanel的一個子類,如下所示:
public class MyCustomGUI extends JPanel {
private JSpinner entrySpinner;
public MyCustomGUI() {
super(null);
this.setDoubleBuffered(true);
entrySpinner = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1));
add(entrySpinner);
....
我必須給它一個位置的方法:
public void resize() {
entrySpinner.setBounds((int) (this.getWidth() * .2), (int) (this.getHeight() * 0.38), (int) (this.getWidth() * 0.3), (int) (this.getHeight() * 0.1));
}
我在這裏覆蓋塗裝方法:
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
.. draw shapes..
super.paintComponents(g);
super.validate();
Toolkit.getDefaultToolkit.sync();
g.dispose();
}
爲了更好地幫助越早,張貼[SSCCE(HTTP:// sscce.org/)。 –