如何让Matisse GUI显示我的自定义添加组件?

时间:2018-06-06 17:01:52

标签: java swing user-interface netbeans components

我正在 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

0 个答案:

没有答案