简体   繁体   English

数据未显示在JList中

[英]Data doesn't show up in JList

I'm trying to display JPanels in a JList with a DefaultListModel. 我正在尝试在具有DefaultListModel的JList中显示JPanels。 Everything compiles fine, so I'm kind of unsure whats going wrong. 一切编译正常,所以我不确定出什么问题。 It actually worket at some point but I had to implement it in a bigger project and now it stopped working. 它实际上在某个时候起作用,但是我不得不在一个更大的项目中实施它,现在它停止了工作。 The problem is most likely somewhere in Jp_Diskussion but I just can't find it... 这个问题很可能在Jp_Diskussion中的某个地方,但我只是找不到...

public class Jp_Diskussion extends JPanel {
    private Jd_BeitragErstellen jd_beitr_erst;
    private Jd_BeitragBearbeiten jd_beitr_bearb;
    private JFrame parentFrame = (JFrame) this.getParent();
    private JComboBox comboBoxMA;
    private JComboBox comboBoxTag;
    private JButton btnFiltern;
    private JLabel labelFiltern;
    private JLabel labelOpt;
    private JButton btnBeitragVerfassen;
    private JScrollPane messageScroll;

public Jp_Diskussion() {
    createMessageList();    
}

private void createMessageList() {
    setBounds(new Rectangle(0, 0, 994, 624));
    setLayout(null);
    add(getJScrollPane());
    add(getComboBoxTag());
    add(getComboBox_2());
    add(getBtnFiltern());
    add(getLabelFiltern());
    add(getLabelOpt());
    add(getBtnBeitragVerfassen());

}

private JScrollPane getJScrollPane() {
    if (messageScroll == null) {

        MessageList m = new MessageList(); 

        m.getMessage("NAME AUTOR", "<html><body style='width: 690px;'>Lorem ipsum dolor sit amet.", "22.01.13", "SOA");
        m.getMessage("AUTOR NAME", "<html><body style='width: 690px;'>Lorem ipsum dolor sit amet.", "22.01.13", "SOA");

        messageScroll = new JScrollPane(m);
        messageScroll.setBounds(20, 20, 954, 461);          
    }
    return messageScroll;
}

private JButton getBtnBeitragVerfassen() {

private JLabel getLabelFiltern() {

private JLabel getLabelOpt() {

private JComboBox getComboBoxTag() {
private JComboBox getComboBox_2() {
private JButton getBtnFiltern() {
}

The JList: JList:

public class MessageList extends JList{

DefaultListModel messageModel = new DefaultListModel();
  JList  messageList = new JList(messageModel);
  MessageRenderer messageRenderer = new MessageRenderer();

     public MessageList( ){
        messageList.setCellRenderer(messageRenderer);

     }

     public void getMessage(String author, String text, String date, String tag){
         messageModel.addElement(new Message(author, text, date, tag));
     }

}

The Message class: 消息类:

public class Message extends JPanel{

    JLabel lblAuthor = new JLabel();
    JLabel lblText = new JLabel();
    JLabel lblDate = new JLabel();
    JLabel lblTag = new JLabel();

 public Message(String author, String text, String date, String tag){

    lblAuthor.setText(author);
    lblText.setText(text);
    lblDate.setText(date);
    lblTag.setText(tag);

    add(lblAuthor,BorderLayout.NORTH);
    add(lblText,BorderLayout.WEST);
    add(lblDate,BorderLayout.SOUTH);
    add(lblTag,BorderLayout.EAST);

    GroupLayout groupLayout = new GroupLayout(this);

    groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup()
    .addGroup(groupLayout.createParallelGroup()     
    .addComponent(lblAuthor)
    .addComponent(lblText)
    .addComponent(lblTag))
    .addComponent(lblDate))
    ;
    groupLayout.setVerticalGroup(groupLayout.createSequentialGroup()
    .addGroup(groupLayout.createParallelGroup()     
    .addComponent(lblAuthor)
    .addComponent(lblDate))
    .addComponent(lblText)
    .addComponent(lblTag))
    ;

    this.setLayout(groupLayout);

 }
}

My Renderer: 我的渲染器:

public class MessageRenderer implements ListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    Component component = (Component)value;

    if (isSelected) {
        component.setBackground(Color.RED);
    } else {
        component.setBackground(Color.GREEN);
    }
    return component;
}
}
public class MessageList extends JList{

DefaultListModel messageModel = new DefaultListModel();

  MessageRenderer messageRenderer = new MessageRenderer();

     public MessageList( ){
        this.setCellRenderer(messageRenderer);
        this.setModel(messageModel);

     }

     public void getMessage(String author, String text, String date, String tag){
         messageModel.addElement(new Message(author, text, date, tag));
     }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM