2015-05-02 2 views
1

Я пытаюсь создать окно GUI для пользователя, чтобы ввести некоторую информацию для моей программы. Но мне кажется, что независимо от того, как я изменяю размеры или местоположения, все мои компоненты скручены намного меньше, чем я хочу. Может ли кто-нибудь указать, что мне не хватает? Вот что я пробовал: менеджер компоновкиКомпоненты get squished в JPanel и JFrame

  JFrame inputFrame = new JFrame(); 
      JPanel panel = new JPanel(); 
      inputFrame.setTitle("Create Event"); 
      inputFrame.setSize(500,400); 

      JTextField eventName = new JTextField("Untitled event"); 
      JTextField eventStart = new JTextField(); 
      JTextField eventEnd = new JTextField(); 
      JButton save = new JButton("Save"); 

      JLabel selectedDate = new JLabel(MyCalendarTester.currentMonth + 1 + "/" + selectedDay + "/" + MyCalendarTester.currentYear); 

      selectedDay = null; 
      panel.setSize(450,300); 
      eventName.setBounds(10, 10, 600, 50); 
      panel.add(eventName); 
      selectedDate.setBounds(10, 20, 50, 20); 
      panel.add(selectedDate); 
      panel.add(eventStart); 
      eventStart.setBounds(100, 20, 50, 20); 
      panel.add(eventEnd); 
      eventEnd.setBounds(175, 20, 50, 20); 
      panel.add(save); 
      save.setBounds(250, 20, 60, 30); 


      inputFrame.add(panel); 
      inputFrame.setVisible(true); 

ответ

2

по умолчанию для JPanel является FlowLayout. В FlowLayout будут отображаться компоненты с их предпочтительным размером, который должен отображаться компонентом.

Вы не должны пытаться дать компонент случайный размер, потому что вы не знаете, что лучший размер для компонента должны быть основаны на шрифт, OS и т.д.

При создании JTextField вы можете использовать:

JTextField textField = new JTextField(10); 

Значение 10 позволит текстовому полю дать разумный предпочтительный размер.

Размер JLabel и JButton будет определяться текстом компонента.

+0

Хм, есть ли макет, который я могу использовать, который все еще дает мне возможность размещать компоненты везде, где я хочу? – aurora91

+0

Вы не хотите этого делать. Это не так, как вы разрабатываете графический интерфейс. – camickr

+0

Я видел ваше редактирование, я понял его сейчас. Благодаря! – aurora91

Смежные вопросы