java中不推荐使用的代码的替代方案?

java中不推荐使用的代码的替代方案?,java,user-interface,deprecated,Java,User Interface,Deprecated,我目前正在学习一本名为《从java开始》的书中的GUI应用程序。我已经尝试了作者关于JList的一个代码示例,但结果表明ButtonListener中的getSelectedValues()已经被弃用了。我只是想问一下,你们是否知道这个特定代码的替代方案。虽然代码仍然有效,但我仍然想知道其他方法 代码如下: package Practice; import javax.swing.*; import java.awt.*; import java.awt.event.*; public cla

我目前正在学习一本名为《从java开始》的书中的GUI应用程序。我已经尝试了作者关于JList的一个代码示例,但结果表明ButtonListener中的getSelectedValues()已经被弃用了。我只是想问一下,你们是否知道这个特定代码的替代方案。虽然代码仍然有效,但我仍然想知道其他方法

代码如下:

package Practice; 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Practice1 extends JFrame{
private JPanel monthPanel;
private JPanel selectedMonthPanel;
private JPanel buttonPanel;
private JList monthList;
private JList selectedMonthList;
private JScrollPane scrollPane1;
private JScrollPane scrollPane2;
private JButton button;

private String[]months = {"January","February","March","April",
        "May","June","July","August","September","October",
        "November","December"};

public Practice1(){
    setTitle("List Demo");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    buildMonthPanel();
    buildSelectedMonthPanel();
    buildButtonPanel();
    add(monthPanel,BorderLayout.NORTH);
    add(selectedMonthPanel,BorderLayout.CENTER);
    add(buttonPanel,BorderLayout.SOUTH);
    pack();
    setVisible(true);
}

private void buildMonthPanel(){
    monthPanel = new JPanel();
    monthList = new JList(months);
    monthList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    monthList.setVisibleRowCount(6);
    scrollPane1 = new JScrollPane(monthList);
    monthPanel.add(scrollPane1);
}

private void buildSelectedMonthPanel(){
    selectedMonthPanel = new JPanel();
    selectedMonthList = new JList();
    selectedMonthList.setVisibleRowCount(6);
    scrollPane2 = new JScrollPane(selectedMonthList);
    selectedMonthPanel.add(scrollPane2);
}

private void buildButtonPanel(){
    buttonPanel = new JPanel();
    button = new JButton("Get Selections");
    button.addActionListener(new ButtonListener());
    buttonPanel.add(button);
}

private class ButtonListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
        Object[]selections = monthList.getSelectedValues();
        selectedMonthList.setListData(selections);
    }
}

public static void main(String[]args){
    new Practice1();
}
}

将其替换为以下内容:

monthList.getSelectedValuesList().toArray()

有关更多信息,请参见

将其替换为以下内容

monthList.getSelectedValuesList().toArray()

有关更多信息,请参见文档中的,其中指出
getSelectedValues
已被弃用,并且该方法已被
getSelectedValuesList
取代!如果你看了这些文件,你就会知道这一点。下次遇到此类问题时,只需查看文档即可。以下是文件:


请注意,新方法返回的是
列表
,而不是
对象[]
。您只需使用
toArray
方法将其转换为文档中的
Object[]

,它表示
getSelectedValues
已被弃用,并表示此方法已被
getSelectedValuesList
取代!如果你看了这些文件,你就会知道这一点。下次遇到此类问题时,只需查看文档即可。以下是文件:


请注意,新方法返回的是
列表
,而不是
对象[]
。您只需使用
toArray
方法将其转换为
Object[]

,从“从JDK 1.7开始,替换为getSelectedValuesList()”(1-)您是否尝试读取该方法的API?当一个方法被弃用时,API会告诉您使用什么方法。您需要学习如何利用API,从“从JDK 1.7开始,被getSelectedValuesList()取代”(1-)开始,您是否尝试阅读该方法的API?当一个方法被弃用时,API会告诉您使用什么方法。你需要学习如何使用API来发挥你的优势。因为你在原来的文章中并没有添加太多内容(我怀疑是否需要返回到数组,但这就是我),你真的应该对它进行评论或将问题标记为重复。就目前而言,你只是在骑着其他人的艰苦工作people@MadProgrammer我确实留下了一个链接来获取更多信息,所以我看起来不像是从另一篇文章中得到了别人的答案。但是你是对的,应该是一个评论,因为你对原始帖子没有太多的添加(我怀疑是否需要返回数组,但那是我),你真的应该对它进行评论或者将问题标记为重复。就目前而言,你只是在骑着其他人的艰苦工作people@MadProgrammer我确实留下了一个链接来获取更多信息,所以我看起来不像是从另一篇文章中得到了别人的答案。但你是对的,应该是一个评论