我有两个程序,每个程序都在一个小程序中创建一个不同的选项卡,用户可以在一个选项卡中输入宠物类型,然后在另一个选项卡中选择并添加或删除宠物类型到列表中。我以为我已经设法解决了所有问题,但现在两者都给了我java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
我似乎无法弄清楚为什么我会收到这些错误。这是两个代码。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class CreatePanel extends JPanel
{
private Vector petList; //Instantiation of variables. To save space, multiple variables
private JButton button1; //were instantiated at a time when possible, such as the panels.
private SelectPanel sPanel;
private JLabel text1, redText;
private JTextField petInput;
private JTextArea petsIn;
private Panel wPanel, alertPanel, petPanel, createPanel;
public CreatePanel(Vector petList, SelectPanel sPanel)
{
this.petList = petList;
this.sPanel = sPanel;
// orgranize components here
// here is an example
setLayout(new GridLayout(1,2));
text1 = new JLabel("Enter a Pet Type"); //Creation of the visible portions of the applet
petInput = new JTextField();
button1 = new JButton("Create a Pet");
petsIn = new JTextArea("No Pet");
wPanel = new Panel(); //Panels have to be used to ensure the porper layout of the
petPanel = new Panel(); //applet so it conforms to assignment specifications
createPanel = new Panel(); //making for a pretty panel, but some very ugly code
alertPanel = new Panel();
alertPanel.setLayout(new GridLayout(1,2));
createPanel.setLayout(new GridLayout(2,3));
petPanel.setLayout(new GridLayout(1,2)); //Each panel has its own layout, making for layouts
wPanel.setLayout(new GridLayout(3,1)); //in layouts to get everything looking correct.
button1.addActionListener(new ButtonListener()); //adds the listener to the button
add(wPanel);
wPanel.add(alertPanel);
alertPanel.add(redText);
wPanel.add(petPanel);
petPanel.add(text1);
petPanel.add(petInput);
wPanel.add(createPanel);
createPanel.add(new JLabel());
createPanel.add(button1);
createPanel.add(new JLabel()); //Have to create several blank labels to get position of
createPanel.add(new JLabel()); //the create pet button to be positioned correctly.
createPanel.add(new JLabel());
createPanel.add(new JLabel());
add(petsIn);
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String inputPet = petInput.getText(); //Gets the user input pet
boolean checker = false; // A boolean check type so pets can't be added repeatedly
for (int p = 0; p < petList.size(); p++){ //Runs a check through the petList vector
if (inputPet.equalsIgnoreCase((String) petList.get(p))){ //If a pet already exists (ignoring case) then the check is set to true
checker = true; //for a later if loop to inform the user.
break;
}
}
if(inputPet.equals("")){
redText.setText("Please enter a pet type.");
redText.setForeground(Color.red);
} else if (checker == true){
redText.setText("The pet type already exists.");
redText.setForeground(Color.red);
} else {
petList.add(inputPet);
String addedPets = (String) petList.get(0);
for(int i = 1; i < petList.size(); i++){
addedPets += "\n" + (String) petList.get(i);
}
redText.setText("Pet type added.");
redText.setForeground(Color.red);
petsIn.setText(addedPets);
sPanel.updateUI();
}
redText.setText("");
} //end of actionPerformed method
} //end of ButtonListener class
} //end of CreatePanel class
和
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
public class SelectPanel extends JPanel
{
private Vector petList, selectList;
private Panel bPanel, nPanel;
private JLabel sPets, aPets, nPets;
private int numPets = 0;
private JButton addPet, remove;
private JList petsAvail, petTypes;
private JScrollPane sPane, sPane2;
public SelectPanel(Vector petList)
{
this.petList = petList;
this.setLayout(new BorderLayout());
bPanel = new Panel();
nPanel = new Panel();
nPanel.setLayout(new GridLayout(1,2));
bPanel.setLayout(new GridLayout(2,1));
petTypes = new JList(petList);
petTypes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sPane = new JScrollPane(petTypes);
petList.add(0, "Available pet(s)");
selectList = new Vector();
petsAvail = new JList(selectList);
petsAvail.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sPane2 = new JScrollPane(petsAvail);
selectList.add(0, "Selected pet(s)");
aPets = new JLabel("Available pet(s)");
nPets = new JLabel("Selected pet(s)");
nPets = new JLabel("The number of selected pets:" + numPets);
addPet = new JButton("Add");
remove = new JButton("Remove");
add(petsAvail, BorderLayout.EAST);
add(petTypes, BorderLayout.WEST);
add(nPanel, BorderLayout.SOUTH);
nPanel.add(nPets);
add(bPanel, BorderLayout.CENTER);
bPanel.add(addPet);
bPanel.add(remove);
addPet.addActionListener(new ButtonListener());
remove.addActionListener(new ButtonListener());
// orgranize components for the panel
}
public void updatePetList()
{
petTypes.updateUI();
petsAvail.updateUI();
//This method can refresh the appearance of the list of pets
//by calling updateUI() method for the JList.
//It can be called from the CreatePanel class whenever a new pet type
//is added to the vector and the JList appearence needs to be refreshed.
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
Object which = event.getSource();
if(which == addPet){
for (int p = 1; p < selectList.size(); p++){
boolean check = false;
if(selectList.contains(petTypes.getSelectedValue())){
check = true;
break;
} else if(check == false){
selectList.addElement(petTypes.getSelectedValue());
petsAvail.updateUI();
numPets++;
}
}
} else if (which == remove){
selectList.removeElement(petsAvail.getSelectedValue());
updatePetList();
numPets--;
}
//When the added button is pushed, the selected pet
//should be added to the right list and the number of
//selected pets is incremented by 1.
//When the remove button is pushed, the selected pet
//should be removed from the right list and the number of
//selected pets is decremented by 1.
//
//Be careful for the cases when no item has been selected.
}
} //end of ButtonListener class
} //end of SelectPanel class
任何有关这些错误的原因以及如何处理它们的见解将不胜感激。