【发布时间】:2015-04-13 23:45:17
【问题描述】:
我正在使用 JSlider,但是当我执行我的应用程序时,JSlider 绘制不完整。
使用 JSlider 的设计时间
我的Java代码改变所代表的值:
//The first JSlider jsDur (170, 180, 190, 200)
Enumeration ed = jsDur.getLabelTable().keys();
while (ed.hasMoreElements()) {
Integer i = (Integer) ed.nextElement();
JLabel label = (JLabel) jsDur.getLabelTable().get(i);
Double d = (double)i / 10.0;
label.setText(String.valueOf(i / 10));
}
//The second JSlider jsAmp (26000, 28000, 30000)
Enumeration ea = jsAmp.getLabelTable().keys();
while (ea.hasMoreElements()) {
Integer i = (Integer) ea.nextElement();
JLabel label = (JLabel) jsAmp.getLabelTable().get(i);
Integer a = (int)Math.pow(2.0, (double)i/2000.0);
label.setText(a.toString());
}
使用 JSlider 的执行时间
检查 jsDur value= 20!!,但使用默认字体...如 jsDur,因为我更改了 jsAmp 的字体以避免此问题,但没有解决。
问题 2
如何aling(左右,相同的大小,不同的JSlider的位置相同)?请检查图像...
设计时的完整图像
执行时间的完整图像
EDIT 1 Version 2 完整代码:
package JA_JF_JComboBox;
import java.util.Enumeration;
import javax.swing.JLabel;
public class JF_Test_JComboBox extends javax.swing.JFrame {
public JF_Test_JComboBox() {
initComponents();
Enumeration ed = jsDur.getLabelTable().keys();
while (ed.hasMoreElements()) {
Integer i = (Integer)ed.nextElement();
JLabel label = (JLabel)jsDur.getLabelTable().get(i);
Double d = (double)i / 10.0;
label.setText(String.valueOf(i / 10));
}
Enumeration ea = jsAmp.getLabelTable().keys();
while (ea.hasMoreElements()) {
Integer i = (Integer)ea.nextElement();
JLabel label = (JLabel)jsAmp.getLabelTable().get(i);
Integer a = (int)Math.pow(2.0, (double)i/2000.0);
label.setText(a.toString());
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jpMake = new javax.swing.JPanel();
jpDur = new javax.swing.JPanel();
jsDur = new javax.swing.JSlider();
jpAmp = new javax.swing.JPanel();
jsAmp = new javax.swing.JSlider();
jpT = new javax.swing.JPanel();
jsT = new javax.swing.JSlider();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jpDur.setBackground(new java.awt.Color(255, 255, 255));
jpDur.setPreferredSize(new java.awt.Dimension(1628, 56));
jsDur.setMajorTickSpacing(10);
jsDur.setMaximum(200);
jsDur.setMinorTickSpacing(2);
jsDur.setPaintLabels(true);
jsDur.setPaintTicks(true);
jsDur.setSnapToTicks(true);
jsDur.setToolTipText("");
jsDur.setName(""); // NOI18N
javax.swing.GroupLayout jpDurLayout = new javax.swing.GroupLayout(jpDur);
jpDur.setLayout(jpDurLayout);
jpDurLayout.setHorizontalGroup(
jpDurLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpDurLayout.createSequentialGroup()
.addGap(108, 108, 108)
.addComponent(jsDur, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpDurLayout.setVerticalGroup(
jpDurLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpDurLayout.createSequentialGroup()
.addComponent(jsDur, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jpAmp.setBackground(new java.awt.Color(255, 255, 255));
jpAmp.setFont(new java.awt.Font("Times New Roman", 0, 10)); // NOI18N
jpAmp.setPreferredSize(new java.awt.Dimension(1628, 56));
jsAmp.setMajorTickSpacing(2000);
jsAmp.setMaximum(30000);
jsAmp.setMinorTickSpacing(1000);
jsAmp.setPaintLabels(true);
jsAmp.setPaintTicks(true);
jsAmp.setSnapToTicks(true);
jsAmp.setToolTipText("");
jsAmp.setValue(30000);
jsAmp.setPreferredSize(new java.awt.Dimension(200, 45));
javax.swing.GroupLayout jpAmpLayout = new javax.swing.GroupLayout(jpAmp);
jpAmp.setLayout(jpAmpLayout);
jpAmpLayout.setHorizontalGroup(
jpAmpLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpAmpLayout.createSequentialGroup()
.addGap(108, 108, 108)
.addComponent(jsAmp, javax.swing.GroupLayout.DEFAULT_SIZE, 1193, Short.MAX_VALUE)
.addContainerGap())
);
jpAmpLayout.setVerticalGroup(
jpAmpLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpAmpLayout.createSequentialGroup()
.addComponent(jsAmp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(12, 12, 12))
);
jpT.setBackground(new java.awt.Color(255, 255, 255));
jpT.setFont(new java.awt.Font("Times New Roman", 0, 10)); // NOI18N
jsT.setFont(new java.awt.Font("Times New Roman", 0, 10)); // NOI18N
jsT.setMajorTickSpacing(12);
jsT.setMaximum(128);
jsT.setMinorTickSpacing(1);
jsT.setPaintLabels(true);
jsT.setPaintTicks(true);
jsT.setSnapToTicks(true);
jsT.setToolTipText("");
jsT.setValue(69);
jsT.setPreferredSize(new java.awt.Dimension(200, 45));
javax.swing.GroupLayout jpTLayout = new javax.swing.GroupLayout(jpT);
jpT.setLayout(jpTLayout);
jpTLayout.setHorizontalGroup(
jpTLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpTLayout.createSequentialGroup()
.addGap(108, 108, 108)
.addComponent(jsT, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jpTLayout.setVerticalGroup(
jpTLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpTLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(jsT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
javax.swing.GroupLayout jpMakeLayout = new javax.swing.GroupLayout(jpMake);
jpMake.setLayout(jpMakeLayout);
jpMakeLayout.setHorizontalGroup(
jpMakeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpMakeLayout.createSequentialGroup()
.addGap(6, 6, 6)
.addGroup(jpMakeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jpAmp, javax.swing.GroupLayout.DEFAULT_SIZE, 1311, Short.MAX_VALUE)
.addComponent(jpDur, javax.swing.GroupLayout.DEFAULT_SIZE, 1311, Short.MAX_VALUE)
.addComponent(jpT, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(0, 70, Short.MAX_VALUE))
);
jpMakeLayout.setVerticalGroup(
jpMakeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpMakeLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(jpDur, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addComponent(jpAmp, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(jpT, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 1413, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jpMake, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 26, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 206, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jpMake, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
pack();
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(JF_Test_JComboBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(JF_Test_JComboBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(JF_Test_JComboBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(JF_Test_JComboBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JF_Test_JComboBox().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JPanel jpAmp;
private javax.swing.JPanel jpDur;
private javax.swing.JPanel jpMake;
private javax.swing.JPanel jpT;
private javax.swing.JSlider jsAmp;
private javax.swing.JSlider jsDur;
private javax.swing.JSlider jsT;
// End of variables declaration
}
【问题讨论】:
-
最重要的是:您没有使用
null布局和setBounds(...)或对setSize(...)或setPreferredSize(...)的任何调用,是吗?请创建并发布一个小/最小但简单的完整程序来说明您的问题,MCVE。请查看链接了解这个非常有用的工具的详细信息。 -
Thks,部分代码,只有一个JSlider ...
-
“部分代码” 不可编译的代码 sn-p 不是 MCVE。请按照@HovercraftFullOfEels 提供的链接阅读相关内容。
-
已经,我会把我的代码...
标签: java swing netbeans fonts jslider