Я пытаюсь преобразовать список в массив, но я получаю сообщение об ошибке, и я не могу понять, почему. Я беру текущий час, и в цикле цикла я получаю оставшиеся часы сегодняшнего дня и помещаю его в список. Когда я пытаюсь изменить его на массив, я получаю сообщение об ошибке. Я пытаюсь сделать это, потому что позже я использую этот массив в JCombobox
метод toArray() не работает над списком
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class Frame extends JFrame implements ActionListener{
//JFrame elements
private JButton btnSetTime;
private JLabel lblTitle;
private JComboBox comboTime;
//Standard elements
private Timer tillPopup, tillShutdown;
Calendar calendar = new GregorianCalendar();
int hour = (calendar.get(Calendar.HOUR_OF_DAY));
List times = createDropdown(hour);
// Convert ArrayList to array which can be used in the combobox
String[] dropdownElements = times.toArray();
String[] a = {"a","b"};
public Frame(){
setLayout(new FlowLayout());
//Labels
lblTitle = new JLabel("Deze applicatie sluit u computer automatisch af om het energieverbruik te verminderen.");
//Combobox
comboTime = new JComboBox(a);
comboTime.setSelectedIndex(0);
//Button
btnSetTime = new JButton("Zet afsluittijd");
//Timers
//tillPopup = new Timer(this);
//tillShutdown = new Timer(this);
//Add elements to Frame
add(lblTitle);
add(comboTime);
add(btnSetTime);
//Add actionListeners
btnSetTime.addActionListener(this);
setSize(500,300);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private List createDropdown(int hour){
List availableHours = new List();
for(int i = hour; i <=24; i++){
if (i != 24){
availableHours.add(i + ":00");
}
else if(i == 24){
availableHours.add("00:00");
}
}
return availableHours;
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == btnSetTime){
Object popupTime = comboTime.getSelectedItem();
System.out.println(popupTime);
}
}
}
я получаю следующее сообщение об ошибке:
Frame.java:21: error: cannot find symbol
String[] dropdownElements = times.toArray();
^
symbol: method toArray()
location: variable times of type List
Как изменить список, я получаю обратно из method createDropdown
в массив и почему я сделал неправильно?
Ваше решение работает очень хорошо, но я не понимаю, почему я должен поставить '' за ним. также в чем разница между утилитой и awt 'list'. пс. Я новичок –
@GertKommer '' представляют действительный параметр типа. Вам нужно указать его, потому что 'java.util.List' является общим типом. Вы можете узнать больше о дженериках из http://docs.oracle.com/javase/tutorial/java/generics/ –
@GertKommer Или для быстрого базового введения я написал сообщение в блоге - http: //rjcodeblog.wordpress .com/2013/09/28/java-generics-a-basic-введение /. Это даст вам быстрый старт. –