30/09/2018, 18:31

Hỏi về JList trong java: muốn tô chọn một phần tử trong JList thì làm thế nào ạ?

Các anh/ chị cho em hỏi… muốn tô chọn một phần tử trong JList thì làm thế nào ạ ? Tô chọn kiểu như thế này:

khi mình nhấp vào button thì nó tô chọn những số thỏa mãn… em không biết phương thức nào để tô chọn cả… em tìm hoài mà chẳng thấy đâu…
.

BigCat viết 20:40 ngày 30/09/2018

muốn tô chọn một phần tử trong JList thì làm thế nào ạ ?

JListRendereder : ListCellRenderer: font, icon and color

Phan Thành Nam viết 20:46 ngày 30/09/2018

anh ơi… em không hiểu lắm… anh nói rõ hơn chút dc không ạ…
em dùng setSelectedIndex, nhưng nó chỉ cho tô đen 1 giá trị… em cũng thử chuyển các Mode của Jlist nhưng vẫn không ăn thua…

Phan Thành Nam viết 20:41 ngày 30/09/2018

Em dùng setSelctedIndices (int []) nó tô đen dc rồi anh ạ, tô đen mảng các phần tử luôn… haha
còn cái hàm anh cho, anh có thể giải thích thêm dc ko anh ? nó dùng để làm gì ạ ?

BigCat viết 20:31 ngày 30/09/2018

còn cái hàm anh cho, anh có thể giải thích thêm dc ko anh ? nó dùng để làm gì ạ ?

Custom jlist cellrenderer

Phan Thành Nam viết 20:35 ngày 30/09/2018

cho em xin phần code dc ko ạ?

BigCat viết 20:33 ngày 30/09/2018
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;

class ComplexCellRenderer implements ListCellRenderer {
  protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();

  public Component getListCellRendererComponent(JList list, Object value, int index,
      boolean isSelected, boolean cellHasFocus) {
    Font theFont = null;
    Color theForeground = null;
    Icon theIcon = null;
    String theText = null;

    JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,
        isSelected, cellHasFocus);

    if (value instanceof Object[]) {
      Object values[] = (Object[]) value;
      theFont = (Font) values[0];
      theForeground = (Color) values[1];
      theIcon = (Icon) values[2];
      theText = (String) values[3];
    } else {
      theFont = list.getFont();
      theForeground = list.getForeground();
      theText = "";
    }
    if (!isSelected) {
      renderer.setForeground(theForeground);
    }
    if (theIcon != null) {
      renderer.setIcon(theIcon);
    }
    renderer.setText(theText);
    renderer.setFont(theFont);
    return renderer;
  }
}

public class ComplexRenderingSample {
  public static void main(String args[]) {
    Object elements[][] = {
        { new Font("Helvetica", Font.PLAIN, 20), Color.RED, new MyIcon(), "A" },
        { new Font("TimesRoman", Font.BOLD, 14), Color.BLUE, new MyIcon(), "A" },
        { new Font("Courier", Font.ITALIC, 18), Color.GREEN, new MyIcon(), "A" },
        { new Font("Helvetica", Font.BOLD | Font.ITALIC, 12), Color.GRAY, new MyIcon(), "A" },
        { new Font("TimesRoman", Font.PLAIN, 32), Color.PINK, new MyIcon(), "A" },
        { new Font("Courier", Font.BOLD, 16), Color.YELLOW, new MyIcon(), "A" },
        { new Font("Helvetica", Font.ITALIC, 8), Color.DARK_GRAY, new MyIcon(), "A" } };

    JFrame frame = new JFrame("Complex Renderer");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JList jlist = new JList(elements);
    ListCellRenderer renderer = new ComplexCellRenderer();
    jlist.setCellRenderer(renderer);
    JScrollPane scrollPane = new JScrollPane(jlist);
    frame.add(scrollPane, BorderLayout.CENTER);

    frame.setSize(300, 200);
    frame.setVisible(true);
  }
}

class MyIcon implements Icon {

  public MyIcon() {
  }

  public int getIconHeight() {
    return 20;
  }

  public int getIconWidth() {
    return 20;
  }

  public void paintIcon(Component c, Graphics g, int x, int y) {
    g.setColor(Color.RED);
    g.drawRect(0, 0, 25, 25);
  }
}
Phan Thành Nam viết 20:37 ngày 30/09/2018

cảm ơn anh

Pucca Ring viết 20:32 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

H T Cover viết 20:39 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

Bài liên quan
0