스윙 JComboBox를 사용하고 테두리를 클릭하면 팝업이 나타나 즉시 사라집니다. 내가 클릭을 말할 때, 나는 마우스의 왼쪽 버튼을 눌러 즉시 풀어 놓는 것을 의미합니다. 어떤 사용자가 일어날 것으로 예상하지 않기 때문에테두리를 클릭하면 JComboBox 팝업이 나타나고 즉시 숨김
는 그것은 나쁜 사용자 경험이 고려 될 수있다. 모든 사용자는 콤보 상자의 테두리를 클릭 다음 동작 중 하나를 기대 :
- 팝업 열을하고,
- 을 열어 남아 아니면 전혀 열 수 없습니다.
사용자가 즉시 팝업을 열고 닫을 것으로 기대하는 사용자는 없습니다.
사용자가 의도적으로 테두리를 클릭하지 않습니다. 그러나 콤보 박스가 작아서 빠르게 클릭하려고하면 빈번히 발생할 수 있습니다. 다음으로, "해결되지 않습니다": 2000 년 누군가에
은 오픈 JDK 사이트의 버그로이 동작을 등록 : 그들은 버그로 인식 한 https://bugs.openjdk.java.net/browse/JDK-4346918
하지만, 해상도를 폐쇄 관찰 :
나는 문제를 재현 할 수 있었지만 그렇게 중요하지는 않다. 나는 그것을 고치지 않을 것이다. 문제는 테두리를 클릭 한 후 마우스를 놓을 때 콤보 상자의 드롭 다운 부분이 숨겨집니다. 이 버그는 큰 영향을주지 않습니다.
나는 매우 중대한 영향을 미치지 않는다는 것에 동의한다. 그러나 여전히 나쁜 사용자 경험으로 이어질 것이라고 생각하며 사용자가 테두리를 클릭 할 때 팝업을 열거 나 열지 않는 간단한 해결 방법이 있는지 알고 싶습니다.
설명 된 동작은 JComboBox의 테두리를 마우스 왼쪽 버튼으로 클릭하여 재현 할 수 있습니다.
이import java.awt.FlowLayout;
import javax.swing.*;
public class JComboBoxUX{
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
JComboBox<String> combobox = new JComboBox<String>(
new String[]{"aaaaaaaaaa","bbbbbbbb","ccccccccc"});
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));
panel.add(combobox);
JFrame frame = new JFrame("JComboBox UX");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(panel);
frame.setSize(300, 150);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
테두리를 클릭하지 마십시오. 어쨌든 픽셀 만 넓습니다. ComboBoxUI의 세부 사항을보고 마우스 클릭을 처리하기 위해 사용자 정의 LAF를 작성해야 할 때 정말 귀찮은 경우. 나 한텐 가치 없어. – camickr
나는 국경을 의도적으로 클릭하지 않는다. 그러나 나는 그것에 대해 생각하지 않고 단지 콤보 박스를 사용하고자 할 때 제 의지에 반하여 자주 발생합니다. 그것은 정말로 나를 귀찮게하지만, 나는 그것에 많은 시간을 할 가치가 없다는 것에 동의한다. 나는 어쩌면이 결함에 대한 간단한 해결책이 있었기 때문에 물었습니다. 인터넷에서 아무것도 찾지 못했습니다. – viniciussss
참고 : 사용자 오류! = (JAVA BUG). 더 나은 도움을 받으려면 [MCVE] 또는 [단락, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. –