Качели комбинированные коробки - PullRequest
0 голосов
/ 19 апреля 2010

Хорошо, я просто определяю поле со списком примерно так ...

JComboBox yearSelect = new JComboBox(); 

Теперь я даже не добавил это на панель или что-то еще, я только что определил это. Когда я запускаю приложение, ничего не отображается ... когда я закомментирую эту строку ... приложение отображает другие панели так, как я хочу ... Есть ли что-то, что я делаю неправильно? Может быть, я забыл что-то, что связано с полями со списком? Я думаю, что это может быть что-то глупое, что я скучаю.

Вот мой конструктор контента.

private Container pane;         // content pane
private JPanel calendarPanel;   // where our calendar will go
private JPanel datePanel;       // where "todays date" will go
private JPanel pnlToolbar;      // tool bar for moving in the year
private JPanel bottomPanel;
private JPanel yearPanel;
private JLabel lbCurrentMonth;
private JLabel dateLabel;
private JButton monthBack;
private JButton monthForward;
private JComboBox yearSelect;

private Date today = new Date();
private int currentMonth = today.getMonth();
private int currentYear = today.getYear(); 
final private String [] days = {"Sunday", "Monday", "Tuesday",
                                "Wednesday", "Thursday", "Friday",
                                "Saturday"};

final private String [] months = {"January", "Febuary", "March", "April",
                                  "May", "June", "July", "August",
                                  "September", "October", "November",
                                  "December"};


public Calendar() {

    // call the calendar frame class constructor (Window class)
    // this function will setup our basic window
    super();

    // define the current date of the calendar as today



    // below are attributes to our window. They define what content
    // is on them.


    // define our window
    pane = window.getContentPane();
    pane.setLayout(new BorderLayout());

    calendarPanel = new JPanel(new FlowLayout());
    calendarPanel.setBorder(BorderFactory.createTitledBorder("Calendar"));

    pnlToolbar = new JPanel(new FlowLayout(FlowLayout.CENTER, 40, 5));
    pnlToolbar.setSize(300, 45);


    //////////////////////////////////////////////////////////////////////
    /* setup our lower date panel, that displays todays date
    and the year drop down menu */

    // for "todays date"
    dateLabel = new JLabel(returnDateString());
    dateLabel.setFont(new Font(null, Font.BOLD, 12));

    datePanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));
    datePanel.add(new JLabel("Todays Date: "), BorderLayout.WEST);
    datePanel.add(dateLabel, BorderLayout.EAST);

    // for "year select"
    // yearSelect = new JComboBox(); 

    yearPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 5));
    //yearPanel.add(yearSelect);

    bottomPanel = new JPanel(new BorderLayout());
    bottomPanel.add(datePanel, BorderLayout.WEST);
    //bottomPanel.add(yearPanel, BorderLayout.EAST);

    // setup the tool bar panel
    lbCurrentMonth = new JLabel(months[currentMonth]);
    monthBack = new JButton("<<");
    monthForward = new JButton(">>");
    monthForward.setEnabled(true);
    monthBack.setEnabled(true);

    pnlToolbar.add(monthBack);
    pnlToolbar.add(lbCurrentMonth);
    pnlToolbar.add(monthForward);



    // add everything to the content panel
    pane.add(calendarPanel, BorderLayout.CENTER);
    pane.add(bottomPanel, BorderLayout.SOUTH);
    pane.add(pnlToolbar, BorderLayout.NORTH);

Ответы [ 2 ]

2 голосов
/ 19 апреля 2010

Вам необходимо добавить модель для отображения ваших данных. См. JComboBox.setModel .

0 голосов
/ 19 апреля 2010

Да, все еще ничего, я прикрепил остальную часть моего кода выше. Даже когда я не добавляю объект на панель, он делает это. Я просто создаю объект, не более того. Есть идеи? Кроме того, я создал отдельное приложение, чтобы убедиться, что я правильно делаю поля со списком, вот что я заметил. Это не то же самое в отдельном приложении .. ниже .. (очень грязно)

public class Main {


public static void main(String[] args) {
    String [] selectFill = {"Cat", "Dog"};
    JFrame window = new JFrame("Window");
    window.setBounds(0, 0 , 800, 600);
    window.setVisible(true);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setLayout(null); 

    //JComboBox selectBox = new JComboBox(selectFill);
    JLabel check = new JLabel("Select: ");
    JPanel contentPanel = new JPanel(new FlowLayout());
    Container pane = window.getContentPane();
    pane.add(contentPanel);
    pane.setLayout(new FlowLayout()); 
    contentPanel.add(check);
    //contentPanel.add(selectBox);
}

}

По какой-то странной причине, когда я изменяю размер окна или минимизирую его, загружается содержимое. Или ... если я закомментирую строку для объекта поля со списком, он также отображает содержимое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...