我正在 Java 中创建我真正的第一个“图形”程序,几乎我使用的所有组件都是通过将它们拖到 NetBeans GUI 中添加的,这没关系。
但是,我必须在着名的initComponents()
之外的新空格中添加一些代码,因为我需要一个JSlider来解释绑定到JTextField的浮点数,反之亦然,但这不是主题。
public AlbedoSection() {//Constructor
initComponents();//Generated by the GUI mostly
myInitComponents();//The void that I'm talking about
//which adds a custom Slider with a TextField
//But doesnt show up in the GUI Editor
}
public void myInitComponents() {
final DecimalFormat df = new DecimalFormat("0.####");
//final JFrame frame = new JFrame();
final JTextField text = new JTextField(20);
final DoubleJSlider slider = new DoubleJSlider(0, 10000, 0, 100);
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
text.setText(df.format(slider.getScaledValue()));
}
});
text.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent ke) {
String typed = text.getText();
double value = Double.parseDouble(typed) * slider.scale;
slider.setValue((int) value);
}
});
slider.setBounds(700,450,200,30);
text.setBounds(900,450,50,30);
add(text); //adding textfield into the frame
add(slider); // adding slider into the frame
}
我也设置组件,程序itsef在我compile it时完美运行,但是新的“硬编码”组件似乎没有出现在GUI Editor中,这让我想知道If有办法做到这一点。
原谅我如果这是一个愚蠢的问题,我只是刚开始编程。
EDIT1:放两张图片并添加代码(myInitComponents代码来自here)