📄 fruitlistdemo.java
字号:
package Pro123;
import java.awt.*;/*!Begin Snippet:file*/
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
/**
* Demonstrates event-handling for lists and buttons. This class
* extends class {@link @JPanel}.
*
* @author author name
* @version One.0.0
*/
public class FruitListDemo extends JPanel {
private JList fruitList;
private JButton resetButton;
private JTextArea resultTextArea;
private Vector vector;
/**
* Creates a window.
*
* @param args not used.
*/
public static void main(String[] args) {
JFrame frame = new JFrame("FruitListDemo");
frame.setContentPane(new FruitListDemo());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 290);
frame.setVisible(true);
}
/**
* Create a Graphical User Interface.
*/
public FruitListDemo() {
setBackground(Color.white);
setupVector();
// Create the components
fruitList = new JList(vector);
resultTextArea = new JTextArea(6, 15);
resetButton = new JButton("Reset Fruit List");
// Customize the component properties
fruitList.setVisibleRowCount(8);
fruitList.setSelectionMode(
ListSelectionModel.SINGLE_SELECTION);
fruitList.setFixedCellHeight(15);
fruitList.setFixedCellWidth(100);
resultTextArea.setEditable(false);
// Register a listener for the list component
fruitList.addListSelectionListener(new FruitListListener());
// Register a listener for the button component
resetButton.addActionListener(new ResetButtonListener());
// Add components to the container
JPanel listPanel = new JPanel();
listPanel.setBackground(Color.white);
listPanel.add(
new JScrollPane(fruitList,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
JPanel textAreaPanel = new JPanel();
textAreaPanel.setBackground(Color.white);
textAreaPanel.add(
new JScrollPane(resultTextArea,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
setLayout(new BorderLayout());
add(listPanel, BorderLayout.NORTH);
add(resetButton, BorderLayout.CENTER);
add(textAreaPanel, BorderLayout.SOUTH);
}
/*
* Initializes the vector.
*/
private void setupVector() {
vector = new Vector();
vector.add("Orange");
vector.add("Pear");
vector.add("Apple");
vector.add("Pineapple");
vector.add("Peach");
vector.add("Grapefruit");
vector.add("Lemon");
vector.add("Grape");
vector.add("Banana");
vector.add("Tangerine");
}
/**
* This inner class handles list-selection events.
*/
class FruitListListener implements ListSelectionListener {
/**
* Moves the selected element from the list to the text area.
*
* @param event the event object.
*/
public void valueChanged(ListSelectionEvent event) {
int index = fruitList.getSelectedIndex();
if (! fruitList.getValueIsAdjusting() && index != -1) {
resultTextArea.append(fruitList.getSelectedValue()
+ "\n");
vector.removeElementAt(index);
fruitList.setListData(vector);
}
}
}
/**
* This inner class handles button events.
*/
class ResetButtonListener implements ActionListener {
/**
* Restores the list to its original state.
*
* @param event the event object.
*/
public void actionPerformed(ActionEvent event) {
setupVector();
fruitList.setListData(vector);
resultTextArea.setText("");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -