Имена моих столбцов не отображаются в моем JTable

Когда я запускаю эту программу, имена моих столбцов не отображаются. Я попытался найти ошибку в Google, но, похоже, ни у кого нет этой ошибки. Я сделал успешный массив для имен данных и столбцов, но он все еще не работает.

public class graphProgram extends JFrame {

    private JPanel inputPanel, graphPanel, buttonPane;
    private JTextField equationInput;
    private JLabel equationLabel;
    private JTable x_yValues;
    private JButton calculateButton;

    public graphProgram() {
        super("Graph Calculator");
        setSize(500, 500);
        setLayout(new BorderLayout());
        addComponents();
        setVisible(true);
    }
    public void addComponents() {
        String[] columnNames = {"X Values", "Y Values"};


        Object[][] data = {{new Integer(-2), ""},
                {new Integer(-1), ""},
                {new Integer(0), ""},
                {new Integer(1), ""},
                {new Integer(2), ""},
                {new Integer(3 ), ""}};

        equationInput = new JTextField();
        calculateButton = new JButton("Calculate");
        equationLabel = new JLabel("Equation: ");
        x_yValues = new JTable(data, columnNames);

        inputPanel = new JPanel(new GridLayout(0, 2));
        graphPanel = new JPanel(new GridLayout(0, 2, 5, 0));
        buttonPane = new JPanel(new GridLayout(0, 1));

        add(inputPanel, BorderLayout.NORTH);
        add(graphPanel, BorderLayout.CENTER);
        add(buttonPane, BorderLayout.SOUTH);

        inputPanel.add(equationLabel);
        inputPanel.add(equationInput);

        graphPanel.add(x_yValues);

        buttonPane.add(calculateButton);
    }
}

person Shaheedul Islam    schedule 29.08.2015    source источник


Ответы (2)


Вы должны поместить JTableвнутри ScrollPane:

x_yValues = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(x_yValues);
person Bruno Caceiro    schedule 29.08.2015
comment
Позже вам придется добавить панель прокрутки в graphPanel, а не в JTable. - person Bruno Caceiro; 29.08.2015
comment
@ShaheedulIslam, да, это правильное решение (1+). Более простой способ реализовать это — заменить: graphPanel.add(x_yValues); на graphPanel.add( new JScrollPane( x_yValues) );. Если это не сработает, у вас есть другая проблема с вашим кодом, который не опубликован. Если вам нужна дополнительная помощь, опубликуйте правильный SSCCE, демонстрирующий проблему. - person camickr; 29.08.2015

Попробуйте использовать JScrollPane в качестве контейнера для вашей таблицы.

JScrollPane scrollPane = new JScrollPane(x_yValues);
graphPanel.add(scrollPane); // replaces graphPanel.add(x_yValues);
person Sva.Mu    schedule 29.08.2015