gpt4 book ai didi

java - JList 类型的方法未定义 - 在哪里放置方法?

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:31 24 4
gpt4 key购买 nike

我尝试调用 JList 上的方法,但出现“JList 未定义方法”错误。问题是我不知道该方法应该去哪里。这是没有方法的代码:

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", "<html><body style='width: 690px;'>Lorem ipsum dolor sit amet.", "22.01.13", "SOA");
messageList.getMessage("AUTOR NAME", "<html><body style='width: 690px;'>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() {
}

这就是方法:

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

现在,如果我在 createMessageList 方法之外定义 getMessage 方法,则在 createMessageList 内调用 getMessage 时会收到上述错误。如果我在 getMessageList 方法中定义 getMessage 方法,该方法也不起作用,因为我无法在另一个方法中定义方法。

但是我应该在哪里定义它呢?

代码片段3:

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", "<html><body style='width: 690px;'>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", "<html><body style='width: 690px;'>Lorem ipsum dolor sit amet.", "22.01.13", "SOA");
}
}

最佳答案

我认为您需要在问题中添加更多代码和堆栈跟踪信息。

但是,我认为您可能误用了 getter/setter 的概念。我不认为您需要 getter 方法 getMessageList 来返回 JList。我的意思是,为什么?什么调用该方法,它对引用做什么?

在您的 JPanelJFrame 中,您可能想要一个名为 messageJListJList >,那好吧。但是,拥有 getMessageJList 方法是没有意义的,因为您的 JPanelJFrame 已经拥有它。这是一个领域。

所以,不要返回 JList,这是没有意义的。

现在,在您的 JPanelJFrame 中,其中 messageJList 是一个字段,您当然可能希望您的getMessage 方法。

HTH。

关于java - JList 类型的方法未定义 - 在哪里放置方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20655082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com