2016-05-04 13 views
0

Ich kann meinem Code kein JTable-Element hinzufügen. Wenn ich es wie Drag and Drop hinzufüge, zeigt es mir nichts. Ich habe versucht, es aus Java-Code hinzuzufügen, und ich habe kein Ergebnis! Wie werde ich einen Tisch mit allen meinen Spalten in der Breite meines Rahmens haben? Hier ist mein RahmenKann JTable nicht hinzufügen

package pack.frames; 

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.awt.Window; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.border.EmptyBorder; 
import javax.swing.JMenuBar; 
import javax.swing.JMenu; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.JScrollPane; 

public class ResutlTable extends JFrame { 

private JPanel contentPane; 


/** 
* Launch the application. 
*/ 
public static void main(String[] args) { 
EventQueue.invokeLater(new Runnable() { 
public void run() { 
try { 
ResutlTable frame = new ResutlTable(); 
frame.setVisible(true); 

} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
}); 
} 

/** 
* Create the frame. 
*/ 

String columns[] = {"Оборудование основного производства","Оборудование дополнительного производства","Заработная плата", 
"Прогнозное значение потребительского спроса", "Утилизация отходов", "Распределение квалификации рабочей силы основного производства", 
"Распределение квалификации рабочей силы дополнительного производства", "Метод вывода", "Прибыль предприятия"}; 
Object data[][] = { 
{"0","Tom",new Integer(20),"Male"}, 
{"1","Tina", new Integer(18), "Female"}, 
{"2","Raj",new Integer(19),"Male"}}; 

public ResutlTable() { 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
setBounds(100, 100, 645, 303); 
setTitle("Система анализа и прогноза функционирования предприятием"); 
contentPane = new JPanel(); 
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
setContentPane(contentPane); 
contentPane.setLayout(null); 

JMenuBar menuBar = new JMenuBar(); 
menuBar.setBounds(0, 0, 629, 21); 
contentPane.add(menuBar); 

JMenu menu = new JMenu("\u0424\u0430\u0439\u043B"); 
menuBar.add(menu); 

JMenu menu_1 = new JMenu("\u0421\u043F\u0440\u0430\u0432\u043A\u0430"); 
menuBar.add(menu_1); 
JTable table = new JTable(null, columns); 
JScrollPane scrollPane = new JScrollPane(table); 
contentPane.add(scrollPane, BorderLayout.CENTER); 
contentPane.setSize(300, 150); 
contentPane.setVisible(true); 
} 
} 
+1

Verwenden Sie eine logische und konsistente Form der Einrückung von Codezeilen und -blöcken. Die Einrückung soll den Codefluss leichter nachvollziehen lassen! –

Antwort

1
contentPane.setLayout(null); 

kein Null Layout Verwenden Sie !!!

contentPane.add(scrollPane, BorderLayout.CENTER); 

Wie erwarten Sie, dass die obige Aussage funktioniert? Wenn Sie ein BorderLayout in Ihrem Panel verwenden möchten, müssen Sie das Layout auf BorderLayout setzen. Das Programm kann deine Gedanken nicht lesen.

Schauen Sie sich den Abschnitt aus dem Swing-Tutorial auf How to Use Tables für Arbeitsbeispiele. Die Tutorials zeigen Ihnen, wie Sie Ihren Code besser strukturieren können.