我目前正在从一本名为“starting out with 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();
}
}
最佳答案
关于java - java 中已弃用代码的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32752711/