2015-09-21 2 views
1

Эй, ребята, мои кнопки и текстовое поле не будут отображаться на JFrame при компиляции, я пробовал все и искал этот сайт, но не повезло. Любая помощь будет принята с благодарностью. Из-за того, что они не позволяют мне отправлять сообщения без каких-либо подробностей, я просто добавляю эту часть, чтобы я мог нажать кнопку отправки.BorderLayout(); кнопки не отображаются

import java.awt.BorderLayout; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 
import javax.swing.JButton; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 

public class DataManager extends JFrame { 

private String students[] = {"John Smith","Ken Hanson","Michael Li","John Andersen","Fiona Harris","Angela Lim","Bob London","Sydney Shield","Tina Gillard", 
          "Ross Brinns","Scott Cairns","Grant Peterson","David Power","Joshua Kane","Alan Newton","Frady Morgan","Quinn Perth"}; 


private int english[] = {80,52,71,61,39,62,31,46,60,26,77,40,58,38,94,90,97}; 

private int maths[] = {60,45,77,90,45,55,66,87,31,42,65,55,80,71,51,55,95}; 

private int total[]; 

private JButton sortNameButton; 

private JButton sortTotalButton; 

private JTextField searchTextField; 

private JButton statisticsButton; 

private JButton exitButton; 

private JTextArea infoTextArea; 

private JPanel jPan; 


public DataManager() { 

super("Data Manager "); 

jPan = new JPanel(); 

sortNameButton = new JButton("Sort By Name"); 

sortTotalButton = new JButton("Sort By Total"); 

searchTextField = new JTextField("Search"); 

statisticsButton = new JButton("Statistics"); 

exitButton = new JButton("Exit"); 

infoTextArea = new JTextArea(); 

setLayout(new BorderLayout()); 

jPan.add(sortNameButton, BorderLayout.NORTH); 
jPan.add(sortTotalButton, BorderLayout.NORTH); 
jPan.add(searchTextField, BorderLayout.NORTH); 
jPan.add(statisticsButton, BorderLayout.NORTH); 
jPan.add(exitButton, BorderLayout.NORTH); 
jPan.add(infoTextArea, BorderLayout.CENTER); 


} 

public static void main(String[] args) { 

    DataManager frame = new DataManager(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(800,600); 
    frame.setVisible(true); 

} // End of main method. 

} // End of DataManager class 
+0

добавить JPanel лол, я сделал эти глупые ошибки, когда я начал использовать – RamanSB

+0

хаха исполнять джазовую музыку в стиле свинга Yeh, им медленно понимая маленькие вещи. – BERWIN

+0

Вопрос откат. Не ставьте вопрос. –

ответ

3

Вы не добавлять JButtons к jPan JPanel, но никогда не добавить jPan ни к чему - он должен быть добавлен в ваш JFrame, чтобы this было видно.

jPan.add(sortNameButton); 
jPan.add(sortTotalButton); 
jPan.add(searchTextField); 
jPan.add(statisticsButton); 
jPan.add(exitButton); 
jPan.add(infoTextArea); 

add(jPan); // don't forget this! ************ 

Примечание другие проблемы:

  • Вы установили макет JFrame на BorderLayout - это уже с помощью BorderLayout
  • Вы добавления компонентов в jPan JPanel с BorderLayout константами, но это не с использованием BorderLayout.
  • Если бы это было так, то многие кнопки не были бы видны, так как многие добавлены к тому же BorderLayout и покроют предыдущий компонент, добавленный там.

Другими словами, прочтите учебники, когда вы делаете неправильные предположения.

Лучше бы что-то вроде:

// setLayout(new BorderLayout()); 
    jPan.setLayout(new BorderLayout()); 

    JPanel northPanel = new JPanel(); // **** to hold buttons 

    northPanel.add(sortNameButton); 
    northPanel.add(sortTotalButton); 
    northPanel.add(searchTextField); 
    northPanel.add(statisticsButton); 
    northPanel.add(exitButton); 

    jPan.add(northPanel, BorderLayout.PAGE_START); 
    jPan.add(infoTextArea, BorderLayout.CENTER); 
+0

Да, это сработало Спасибо, что-то такое малое, что я должен был подобрать. действительно оцените – BERWIN

+0

@BERWIN: посмотрите пожалуйста редактирование. –

+0

Да, я понял, что вы говорите, спасибо вам большое. – BERWIN

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