문제

이후 나는 여기에 게시하고,지금 내가 시점에서 자신을 찾을 갇혀있습니다.

위 내에서 할당 uni,우리는 우리를 만들도록 요청되었다는 주소 예약 응용 프로그램.그것이 잘되어 가고있는 것,그리고 그것은 거의 완료되면,그러나 중 하나로 프로젝트의 일부는 순전히 내 취향,를 회피한다.나는 도움을 요청의 어떤 부분에 할당을 얻을 것이다 나를 표시하는 명확합니다.나는 업로드 할 수 있습니다 spec 면 사람들의 증거니다.(/공개)

응용 프로그램의 일부분은 가져 오기 및 내보내에서 사용자 지정 파일 형식 및 vcard 형식입니다.이 잘 작동합니다.사용자 지정 파일 형식을 보유하고 여러 연락처로,단지 4 개 라인당 연락처입니다.를 보유하고 있기 때문에 여러 개의 연락처,새로운 창이 열리는 요청을 사용자가 선택 연락처 그들이 원하는 것을 수출하는 파일입니다.이 포함 JList 는 사용자가 선택할 수 있는 연락처 및 내보내기 파일,문제가 없습니다.

내가 무엇을 하는 데,이들 세포 렌더러는 사용할 수 있는 확인란에서 JList.저는 거의 이동에 의한 보고기(http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html#renderer 다)및기(http://www.jroller.com/santhosh/entry/jlist_with_checkboxes),그러나 없는 행운입니다.첫 번째 링크를 만드는 방법에 대해 설명합 사용자 지정 셀 렌더러,그러나지크 박스입니다 및 두 번째 작업을 수행하는 방법에 대해 설명합 체크 박스입니다.를 얻을 수 있습 확인 상자를 표시하는,그러나 그 다음은 모든 것이 표시됩니다.

에서 후자를 들어,상의해야 자신을 클릭하기 위해서는 회원을위한 목록의 선택 될 수 있습니다.내가 무엇을 할 수 있도록 사용자가를 클릭 하거나 또는 목록 항목의 확인란의 선택할 수도 있습니다.

버전에서의 체크 박스는 내가 일하고있어,선택 근무,그러나 ctrl 전을 개최를 위해 아래로 여러 항목을 선택합니다.방법은 없는 그렇게 만들 ctrl 이 필요하지 않습에 대한 다수의 선택 항목?나는 당신을 읽을 수 있 수정에서 클릭만,아무 생각하는 경우 적용할 수 있습니다 그들을 클릭하면 지정한 객체입니다.

당신의 생각,의견,제안,링크 및 정확한 답을 모두 매우 환영합니다!:)

도움이 되었습니까?

해결책

이것은,그것의 종류;하지만 그것은 본질적으로 위조기 때문에 체크 박스지 않는 아무 것도 하지 않는다는 거지만,아직 확인하는 목록 항목을 선택.

import java.awt.Component;
import java.awt.FlowLayout;

import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;


public class Relequestual extends JFrame {

   private final FunkyCellRendererComponent funkyCRC = new FunkyCellRendererComponent();

   public Relequestual() {
      getContentPane().setLayout(new FlowLayout());

      String[] items = { "Item 1", "Item 2", "Item 3", "Item 4" };
      JList theList = new JList(items);
      theList.setCellRenderer(
      new ListCellRenderer() {
         @Override
         public Component getListCellRendererComponent(JList list, Object value, int index,
               boolean isSelected, boolean cellHasFocus) {
            funkyCRC.setup(list, value, index, isSelected, cellHasFocus);
            return funkyCRC;
         }
      });
      getContentPane().add(theList);

   }

   /**
    * @param args
    */
   public static void main(String[] args) {
      Relequestual gui = new Relequestual();
      gui.pack();
      gui.setVisible(true);
   }

   class FunkyCellRendererComponent extends JPanel {

      private JCheckBox checkBox = new JCheckBox();
      private JLabel label = new JLabel();
      private JList list;
      private int index;

      public FunkyCellRendererComponent() {
         super(null);
         setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
         add(this.checkBox);
         add(this.label);
      }

      public void setup(JList list, Object value, int index,
               boolean isSelected, boolean cellHasFocus) {
         this.list = list;
         this.index = index;
         this.label.setText((String) list.getModel().getElementAt(index)); 
         if (isSelected) {
            setForeground(list.getSelectionForeground());
            setBackground(list.getSelectionBackground());
         } else {
            setForeground(list.getForeground());
            setBackground(list.getBackground());
         }
         this.checkBox.setSelected(isSelected);
      }

   }

}

다른 팁

내가 사용하는 것 JTable 추가 checkbox 로 별도의 열입니다.

할 수 있습니다 추가 MouseListener 테이블과할 때마다 다른 열을 확인할 전환 값을 확인란을 선택합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top