Довольно раздражающая проблема со списком Swing - PullRequest
0 голосов
/ 20 октября 2018

https://youtu.be/8djixdHNoEQ - это видео показывает, с чем я сталкиваюсь, в том смысле, что JComboBox, кажется, отображается несколько раз / оставляя последующее изображение.

Вот как я настроилполе со списком:

private String[] list = { "Inches/Centimeters", "Miles/Kilometres", "Pounds/Kilograms", "Gallons/Litres", "Feet/Metres", "Celcius/Kelvin", "Acres/Hectare" }; //the String array the ComboBox uses

private JComboBox<String> conversionCombo; //defining the JComboBox.
conversionCombo = new JComboBox<String>(list); // creating JComboBox

Кроме определения списка, который он использует, самого поля гребенки и создания поля со списком, нет другого кода, который взаимодействует с этим компонентом.(кроме кода, который устанавливает поле со списком и добавляет его на экран и т. д.)

Пример программы ниже.

thing1 (класс драйвера, устанавливает JFrame):

import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JLabel;


public class thing1 {

    public static void main(String[] args) throws IOException {

        JFrame frame = new JFrame("Thing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        thing2 thing2 = new thing2();

        frame.getContentPane().add(thing2);

        frame.pack();
        frame.setVisible(true);
    }
}

thing2 (устанавливает элемент пользовательского интерфейса - в данном случае только JComboBox):

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JComboBox;
import javax.swing.JPanel;



@SuppressWarnings("serial")
public class thing2 extends JPanel {

    /**
     *  Declaring all variables and components to be used within the GUI
     */

    private String[] list = { "Inches/Centimeters", "Miles/Kilometres", "Pounds/Kilograms", "Gallons/Litres", "Feet/Metres", "Celcius/Kelvin", "Acres/Hectare" };



    thing2() {
        JComboBox<String> conversionCombo = new JComboBox<String>(list); // creating JComboBox
        add(conversionCombo);
        setPreferredSize(new Dimension(800, 80));
        setBackground(Color.WHITE);
    }

}

Должен быть в состоянии скомпилировать это и увидеть проблему.В этом случае, если вам нужно выбрать что-либо из выпадающего списка и переместить указатель мыши вправо от выпадающего списка, когда указатель мыши находится «внутри» (например: https://i.imgur.com/Z2Slrl3.gifv), появится «after-images».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...