Vælge flere gange på dropDown
Hejsajeg er i gang med at lave et program hvor man i dropdown hvor man kan vælge hvilket hotel, og når man så vælger hvilket hotel skal der i mit textarea hvilken bookinger der findes .
Men jeg kan ikke vælge den der står øverst, så kommer den med et fejl at min arraylist er lig med null.
Men når jeg vælger nummer 2 kommer der de rigtige antal, og hvis jeg så vælger nr 1 på listen kommer det rigtige resultat men når jeg så vælger igen, bliver der lagt til min arraylist.
Hvordan tager man højde for at man ikke kender hvor mange gange brugeren vil køre rundt i ens dropdown liste.
Her er min kode for min GUI actionlistener:
public class MainGui implements ActionListener
{
JFrame frame = new JFrame("Hotel Administration");
JButton btnBook;
JTextArea ta;
JComboBox hotelList;
getHotels readDB = new getHotels();
readArray arrayReads = new readArray();
readArray arrayReadsNew = new readArray();
ArrayList<Hotels> list = new ArrayList<Hotels>(readDB.readFromDB());
public MainGui() throws Exception
{
frame.setSize(1200, 600);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
// NORTH - JComboBox
// JComboBox takes an Object Array as parameter.
// The Object Array contains what you see in the drop down List
// You need to get the hotel information in the hotelArr instead of the
// strings "Test" ... etc
//Object[] hotelArr = { "Test", "Test1", "Test2", "Test3", "Test4" };
@SuppressWarnings({ "rawtypes", "unchecked" })
// this just hide some unimportant warnings
JComboBox hotelList = new JComboBox(list.toArray());
hotelList.addActionListener(this);
frame.add(hotelList, BorderLayout.NORTH);
// CENTER - TextArea
ta = new JTextArea();
//ta.setText(bookingList.toString());
frame.add(ta, BorderLayout.CENTER);
// SOUTH - Button
btnBook = new JButton("Register new Guest in the System");
frame.add(btnBook, BorderLayout.SOUTH);
btnBook.addActionListener(this);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
String hotelName = "";
JComboBox cb = (JComboBox)e.getSource();
hotelName = (String)cb.getSelectedItem().toString();
if(ta.getText().trim().length() == 0)
{
try {
ta.setText(arrayReads.readFromArrayBooking(hotelName));
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else
{
try {
ta.setText("");
ta.setText(arrayReadsNew.readFromArrayBooking(hotelName));
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Her er koden for hvordan min metode får input fra databasen.
public class readArray
{
getHotels fillArrays = new getHotels();
ArrayList<Bookings> bList;
ArrayList<Hotels> hList = new ArrayList<Hotels>();
public ArrayList<Bookings> fillArrayBooking() throws SQLException
{
bList = new ArrayList<Bookings>(fillArrays.readFromDbBooking());
return bList;
}
public String readFromArrayBooking(String hotelName) throws SQLException
{
String bListHotelNo = "";
fillArrayBooking();
for(Bookings b : bList)
{
String a = b.getHotelNo() + " " + b.getHotelName() + " " + b.getCity() + "\n";
if(a.equals(hotelName))
{
bListHotelNo += b.getHotelNo() + " " + b.getHotelName() + " " + b.getCity();
}
}
return bListHotelNo;
}
}
Jeg håber nogle kan hjælpe for jeg kan ikke lige gennemskue hvordan jeg skal gøre videre. Hver gang jeg køre ind i metode igen så bliver der lagt 4 til min arraylist så den lige pludselig indeholder 8.
Mvh,
Tina