2014-06-05 9 views
0

ComboBox에 대한 사용자 지정 목록 모델을 설정하기 만하면됩니다. 주석 처리 된 코드도 작동하지 않았습니다. 나는 왜 그런지 전혀 모른다!intellij에서 사용자 지정 구성 요소 생성이 실패합니다.

내가 JDK 1.8

import jssc.SerialPortList; 
import javax.swing.*; 
import java.awt.*; 


public class sampleForm extends JFrame { 
    private JComboBox comboBox1; 
    private JPanel panel1; 

/*public sampleForm() { 
    super("title"); 
    String[] portNames = SerialPortList.getPortNames(); 
    setLayout(new FlowLayout()); 
    comboBox1 = new JComboBox(portNames); 
    add(comboBox1); 
}*/ 

public static void main(String[] args) { 
    JFrame frame = new JFrame("sampleForm"); 
    frame.setContentPane(new sampleForm().panel1); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
} 

private void createUIComponents() { 
    // TODO: place custom component creation code here 
    String[] portNames = SerialPortList.getPortNames(); 
    comboBox1 = new JComboBox(port); 
} 

} 클래스가 이미 JFrame입니다

답변

0

아래 인 IntelliJ 커뮤니티 에디션에서 일하고 있어요,하지만 당신은 main 방법의 다른 JFrame의 인스턴스를 만들 수 있습니다. 따라서 sampleForm 생성자에 추가 한 내용은 sampleForm 인스턴스가 표시하는 프레임이 아니기 때문에 시각적으로 영향을 미치지 않습니다. 새 JFrame 인스턴스를 표시하고 있습니다. 따라서 대신

public sampleForm() { 
    super("title"); 
    String[] portNames = SerialPortList.getPortNames(); 
    comboBox1 = new JComboBox(portNames); 
    panel1 = new JPanel(); // default FlowLayout 
    panel.add(comboBox1); 
    setContentPane(panel1); 
} 

public static void main(String[] args) { 
    sampleForm frame = new sampleForm("sampleForm"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
} 

Initial Threads을 참조하십시오. 스윙 앱은 Event Dispatch Thread에서 실행해야합니다.

관련 문제