2016-06-22 8 views
0

JTextField에서 텍스트를 가져 와서 키보드의 Enter 키를 눌러 항목을 JList에 추가해야하는 등의 문제가있었습니다. 선택한 항목은 alt 키를 누른 상태에서 목록에서 제거 할 수 있습니다. 명부.JTextField에서 가져와 JList에 추가

는 지금

import java.awt.BorderLayout; 
import java.awt.Container; 
import java.awt.FlowLayout; 
import java.awt.event.KeyAdapter; 
import java.awt.event.KeyEvent; 
import java.awt.event.MouseAdapter; 

import java.awt.event.MouseEvent; 

import javax.swing.DefaultListModel; 
import javax.swing.JFrame; 
import javax.swing.JList; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextField; 


public class Main extends JFrame{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = -4006813674691791252L; 

    private DefaultListModel listM; 
    private JList list; 
    private JTextField jText; 

    public static void main(String[] args) { 
     new Main(); 
    } 

    Main() { 

     super("From JText to Jlist"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setLayout(new BorderLayout()); 
     pack(); 
     setLocationRelativeTo(null); 
     setVisible(true); 

     listM = new DefaultListModel(); 
     list = new JList(listM); 
     jText = new JTextField(); 

     list.addMouseListener(new MouseAdapter() { 

      @Override 
      public void mouseClicked(MouseEvent e) { 

      if (e.isAltDown() && list.getSelectedIndex() >= 0){ 
         listM.remove(list.getSelectedIndex()); 
        } 
       } 
     }); 

     jText.addKeyListener(new KeyAdapter() { 

         @Override 
         public void keyPressed(KeyEvent e){ 
          if (e.getKeyCode() == KeyEvent.VK_ENTER) { 
           final String str = jText.getText(); 
           listM.addElement(str); 
           jText.setText(""); 
            } 
         } 
     }); 


     JPanel inputPanel = new JPanel(); 
     inputPanel.setLayout(new BorderLayout()); 
     inputPanel.add(new JScrollPane(list)); 
     inputPanel.add(jText, BorderLayout.PAGE_END); 

     }  
} 

에 의해 무엇을 가지고 그것은 단지 빈 프레임을 보여줍니다.

나는 모든 종류의 도움에 감사 할 것입니다.

+0

라인'jText.setText ("") 이후의 keyPressed 내부의'inputPanel'에'재 페인트를()'를 호출하려고,' – Orin

+0

당신은 이제까지 JFrame의에'inputPanel'를 추가하려면 어떻게해야합니까? 'add (inputPanel)'행이 보이지 않는다 – johmsp

+0

전체 코드를 게시하는 대신 [mcve]를 써주십시오. –

답변

0

이렇게하면 작동합니다.

JPanel inputPanel = new JPanel(); 
inputPanel.setLayout(new BorderLayout()); 
inputPanel.add(new JScrollPane(list)); 
inputPanel.add(jText, BorderLayout.PAGE_END); 
getContentPane().add(inputPanel); 
0

구성 요소를 JFrame에 추가 한 적이 없습니다. 그것이 비어있는 이유입니다.