hi leutz.
Ich hab ein Prob mit JTable.. immer wenn ich meine maske in den Hintergrund schicke(oder minimiere) rutscht meine JTable um eine spaltenhöhe nach unten.
ich MUSS leider layout(null) setzten da auf dieser maske schon nen haufen anderer sachen drauf sind und geaddet werden können. Ist ne art eingabe-Terminal.
in meinem Hauptfenster(BDE) adde ich auf das JPanel BDE.unten das JPanel ResultateAktuell.
und auf dessen JPanel wird wiederum das JPanel TableFromDBJustShow geaddet
am Border liegts nicht.. das hab ich schon auf 0 gestellt.
ich denke das es wegen dem Layout(null) ist.
weiss jemand was ich da machen kann..
LayoutManager kann ich nicht nehmen!!!!
gruss
MScalli
Ich hab ein Prob mit JTable.. immer wenn ich meine maske in den Hintergrund schicke(oder minimiere) rutscht meine JTable um eine spaltenhöhe nach unten.
ich MUSS leider layout(null) setzten da auf dieser maske schon nen haufen anderer sachen drauf sind und geaddet werden können. Ist ne art eingabe-Terminal.
in meinem Hauptfenster(BDE) adde ich auf das JPanel BDE.unten das JPanel ResultateAktuell.
Code:
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
public class ResultateAktuell extends JPanel {
JLabel ueberschrift;
ResultateAktuell(){
setBounds(0,0,1000,290);
Border etchedBdr ,titledBdr ,emptyBdr ,compoundBdr;
etchedBdr = BorderFactory.createEtchedBorder();
titledBdr = BorderFactory.createTitledBorder(etchedBdr, ""); // Hier kann eine Überschrift stehen die im Border angezeigt wird
emptyBdr = BorderFactory.createEmptyBorder(10,10,10,10);
compoundBdr=BorderFactory.createCompoundBorder(titledBdr, emptyBdr);
setBorder(compoundBdr);
setLayout(null);
ueberschrift = new JLabel("Resultate Aktuell");
ueberschrift.setBounds(20, 20, 900, 60);
ueberschrift.setBorder(compoundBdr);
ueberschrift.setHorizontalAlignment(JLabel.CENTER);
ueberschrift.setFont(MyParam.getFontUeberschrift());
add(ueberschrift);
JPanel tabelle = new JPanel();
tabelle.setBounds(20, 80, 900, 200);
tabelle.setBorder(compoundBdr);
tabelle.add(new TableFromDBJustShow("Select datumzeit, sa from ali"));
add(tabelle);
}
}
und auf dessen JPanel wird wiederum das JPanel TableFromDBJustShow geaddet
Code:
package BDEPackage;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
public class TableFromDBJustShow extends JPanel{
private static final long serialVersionUID = -7719682211346585362L;
JTable table;
JPopupMenu popupmenu = new JPopupMenu();
public DefaultTableModel model;
@SuppressWarnings("unchecked")
TableFromDBJustShow(String sql_string){
Vector columnNames = new Vector();
Vector data = new Vector();
this.setPreferredSize(new Dimension(900,200));
setLayout(null);
setBounds(0,0,900,200);
try
{
// Lade Treiber, Verbinde mit der Datenbank und erstelle Statement
new MyDatabase(MyParam.getPathConfig());
Connection con = (Connection) MyDatabase.getConnection();
// Read data from a table
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery( sql_string );
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
// Get column names
for (int i = 1; i <= columns; i++){
columnNames.addElement( md.getColumnName(i) );
}
// Get row data
while (rs.next()){
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++){
row.addElement( rs.getObject(i) );
}
data.addElement( row );
}
rs.close();
stmt.close();
}
catch(Exception e){
System.out.println( e );
}
// TableModel Sortierung geht von alleine!!
model = new DefaultTableModel(data, columnNames) {
private static final long serialVersionUID = -7946186467395546994L;
public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
table = new JTable(model);
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
table.getTableHeader().setReorderingAllowed(false);
table.setFocusable(true);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(0,0,900,200);
add(scrollPane);
}
}
am Border liegts nicht.. das hab ich schon auf 0 gestellt.
ich denke das es wegen dem Layout(null) ist.
weiss jemand was ich da machen kann..
LayoutManager kann ich nicht nehmen!!!!
gruss
MScalli