Note that there are some explanatory texts on larger screens.

plurals
  1. POMethod undefined for type JList - Where to place method?
    text
    copied!<p>I'm trying to call a method on a JList, but I get this "method undefined for JList" error. The problem is I don't know where the method should go. This is the code without the method:</p> <pre><code>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; private JList messageList; private DefaultListModel messageModel; public Jp_Diskussion() { createMessageList(); } public void getMessage(String author, String text, String date, String tag) { messageModel.addElement(new Message(author, text, date, tag)); } 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()); messageList.getMessage("NAME AUTOR", "&lt;html&gt;&lt;body style='width: 690px;'&gt;Lorem ipsum dolor sit amet.", "22.01.13", "SOA"); messageList.getMessage("AUTOR NAME", "&lt;html&gt;&lt;body style='width: 690px;'&gt;Lorem ipsum dolor sit amet.", "22.01.13", "SOA"); } private JList getMessageList() { if (messageList == null) { messageModel = new DefaultListModel(); messageList = new JList(messageModel); messageList.setCellRenderer(new MessageRenderer()); } return messageList; } private JScrollPane getJScrollPane() { if (messageScroll == null) { messageScroll = new JScrollPane(getMessageList()); 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() { } </code></pre> <p>And this is the method:</p> <pre><code>public void getMessage(String author, String text, String date, String tag) { messageModel.addElement(new Message(author, text, date, tag)); } </code></pre> <p>Now if I define the getMessage method outside of the createMessageList method I get the above error when calling getMessage inside createMessageList. If I define the getMessage method inside the getMessageList method that won't work either because I can't define a method inside another method.</p> <p>But where should I define it then?</p> <p>Code Snippet 3:</p> <pre><code>public class MessageList extends JPanel{ DefaultListModel messageModel = new DefaultListModel(); JList messageList = new JList(messageModel); JScrollPane messageScroll = new JScrollPane(messageList); MessageRenderer messageRenderer = new MessageRenderer(); public MessageList( ){ messageList.setCellRenderer(messageRenderer); add(messageScroll,BorderLayout.CENTER); } public void ladeBeitrag(String author, String text, String date, String tag){ messageModel.addElement(new Message(author, text, date, tag)); } public static void main(String[]args){ MessageList m = new MessageList(); JFrame f = new JFrame("JPanel inside JList"); f.setSize(900, 750); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); f.add(m); m.ladeBeitrag("NAME AUTOR", "&lt;html&gt;&lt;body style='width: 690px;'&gt;Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren.", "22.01.13", "SOA"); m.ladeBeitrag("AUTOR NAME", "&lt;html&gt;&lt;body style='width: 690px;'&gt;Lorem ipsum dolor sit amet.", "22.01.13", "SOA"); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload