das_pseudonym
Little Overclocker
|
Hallo, ich bin am verzweifeln, seit 3 Stunden zerbrech ich mir den Kopf und google mich durch, aber ich finde keine Lösung für mein Problem. Ich habe hier ein JFrame mit einem BorderLayout bestückt und alle "Himmelsrichtungen" mir gleichnamigen JPanels belegt. atm versuche ich das West-Panel zum laufen zu bekommen, allerdings ist die Breite meiner JTable, die sich in einer JScrollPane befindet etwas zu groß. Ich benötige nur 3 Spalten - weil ich den restlichen Platz für die anderen Elemente brauchen werde. Hier einmal der Code: /*
* Interface.java
*
* Created on 23. August 2008, 12:44
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package semdaba;
import java.awt.*;
import java.util.*;
import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;
/**
*
* @author Cthulhu
*/
public class Interface {
JFrame f;
JPanel north, south, east, west, center;
/*North-Panel - ANFANG*/
JTextField user, pw;
FlowLayout flnorth;
JButton blogin;
/*North-Panel - ENDE*/
/*West-Panel - ANFANG*/
JTextField wsearch;
JTable wtable;
GridBagLayout gbl;
GridBagConstraints con_wsearch, con_wtable;
JScrollPane jsp;
/*West-Panel - ENDE*/
/*Menü - ANFANG*/
JMenuBar jmb;
JMenu mode, info;
JMenuItem checkin, admin, ueber, exit;
/*Menü - ENDE*/
/** Creates a new instance of Interface */
public Interface() {
f = new JFrame("SemDaBa");
f.setSize(1000, 700);
north = new JPanel();
east = new JPanel();
south = new JPanel();
west = new JPanel();
center = new JPanel();
/*Menü - Anfang*/
jmb = new JMenuBar();
mode = new JMenu("Modus");
info = new JMenu("Info");
checkin = new JMenuItem("Check-In");
admin = new JMenuItem("Administration");
ueber = new JMenuItem("Über...");
exit = new JMenuItem("Beenden");
mode.add(checkin);
mode.add(admin);
mode.addSeparator();
mode.add(exit);
info.add(ueber);
jmb.add(mode);
jmb.add(info);
f.setJMenuBar(jmb);
checkin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
}
});
admin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
}
});
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.exit(0);
}
});
/*Menü - Ende*/
f.getContentPane().add(east, BorderLayout.EAST);
f.getContentPane().add(center, BorderLayout.CENTER);
f.getContentPane().add(west, BorderLayout.WEST);
f.getContentPane().add(north, BorderLayout.NORTH);
f.getContentPane().add(south, BorderLayout.SOUTH);
north.setBackground(Color.RED);
south.setBackground(Color.GREEN);
west.setBackground(Color.YELLOW);
east.setBackground(Color.GRAY);
/*NORTH-PANEL - ANFANG*/
user = new JTextField("Username");
pw = new JTextField("Password");
blogin = new JButton("Login");
user.setColumns(15);
pw.setColumns(10);
user.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
}
});
pw.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
pw.setText("");
}
});
blogin.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
}
});
user.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me)
{
user.setText("");
}
});
pw.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me)
{
pw.setText("");
}
});
flnorth = new FlowLayout();
flnorth.setAlignment(FlowLayout.LEFT);
north.setLayout(flnorth);
north.add(user);
north.add(pw);
north.add(blogin);
/*NORTH_PANEL - ENDE*/
/*West-Panel - ANFANG*/
wsearch = new JTextField();
wtable= new JTable(new String[][]{{"1", "2", "3"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"},{"4", "5", "6"}}, new String[]{"Nachname", "Vorname", "Bezahlt"});
jsp = new JScrollPane(wtable);
wsearch.setColumns(20);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
gbl = new GridBagLayout();
con_wsearch = new GridBagConstraints();
con_wtable = new GridBagConstraints();
con_wsearch.anchor = GridBagConstraints.WEST;
con_wtable.anchor = GridBagConstraints.WEST;
con_wsearch.gridx = 0;
con_wtable.gridx = 0;
con_wsearch.gridy = 0;
con_wtable.gridy = 1;
con_wtable.gridwidth = 1;
con_wtable.gridheight = 1;
con_wtable.fill = GridBagConstraints.VERTICAL;
gbl.setConstraints(wsearch, con_wsearch);
gbl.setConstraints(jsp, con_wtable);
//wtable.setCellSelectionEnabled(false);
//wtable.setColumnSelectionAllowed(false);
//wtable.setFillsViewportHeight(true);
jsp.setWheelScrollingEnabled(true);
wtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
west.setLayout(gbl);
west.add(wsearch);
west.add(jsp);
/*West-Panel - ENDE*/
/*Center-Panel - ANFANG*/
/*Center-Panel - ENDE*/
/*East-Panel - ANFANG*/
/*East-Panel - ENDE*/
/*South-Panel - ANFANG*/
/*South-Panel - ENDE*/
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
Ich hoffe jemand von euch kann mir weiterhelfen. MfG pseudo Edit: Es gibt zwar noch ne main-klasse, aber da wird nur eine instanz aus interface erzeugt.
|
prayerslayer
Oar. Mh.
|
ich werd noch ein bissl weiter schauen, aber mal eins im voraus: findest den konstruktor von der table im west-panel net ein bissl... umständlich? also ich weiß net, welches ziel der verfolgt (ein bild tät mir wahrscheinlich helfen), aber so auf den ersten blick wärs wahrscheinlich mit einer schleife eleganter gegangen.
//versuch mal mit wtable.setPreferredSize(x,y) herumzuprobieren. und wenn das nix hilft mit der prefferedSize vom panel, in dem die wtable ist.
Bearbeitet von prayerslayer am 29.08.2008, 23:41
|