L
luckyluke
Gast
Ich habe ein großes Problem, mit dem ich mich schon ca eine Woche rumschlage.
Ich habe vor einen kleinen emailClienten mit GUI zu schreiben ( der kommandozeilen client ist schon fertig).
Dieser Client soll bewährte dreigeteilte fenster haben. Auf der linken seite Posteingang und Postausgang (zunächst).
Auf der rechten Seite oben die vorhandenen eMails und direkt darunter die jeweilige eMail, die gerade markiert ist.
Die vorhandenen eMails sollen in einem JTable dargestellt werden (das muss ich noch proggen, im Moment ist anderer Inhalt drin).
Die jeweilige eMail wird in einem JeditorPane dargestellt (im Moment wird eine index.htm geladen)
Mein Problem ist, dass er im startzustand das JeditorPane nur ca 10 pixel hochmacht und den JTable übergross. Ich hab auch schon getestet beide umzukehren (oben JeditorPane und unten Jtable), da funktioniert das komischerweise.
Hat eventuell jemand eine Lösung wie ich oben den JTable hinbekomme und unten das Jeditorpane und beide nehmen immer 50% der verfügbaren Höhe in Anspruch? (Denn bei einem resize funktionierts nämlich - dies liegt an weightx und weighty)
Hier nun der Code:
Ich habe vor einen kleinen emailClienten mit GUI zu schreiben ( der kommandozeilen client ist schon fertig).
Dieser Client soll bewährte dreigeteilte fenster haben. Auf der linken seite Posteingang und Postausgang (zunächst).
Auf der rechten Seite oben die vorhandenen eMails und direkt darunter die jeweilige eMail, die gerade markiert ist.
Die vorhandenen eMails sollen in einem JTable dargestellt werden (das muss ich noch proggen, im Moment ist anderer Inhalt drin).
Die jeweilige eMail wird in einem JeditorPane dargestellt (im Moment wird eine index.htm geladen)
Mein Problem ist, dass er im startzustand das JeditorPane nur ca 10 pixel hochmacht und den JTable übergross. Ich hab auch schon getestet beide umzukehren (oben JeditorPane und unten Jtable), da funktioniert das komischerweise.
Hat eventuell jemand eine Lösung wie ich oben den JTable hinbekomme und unten das Jeditorpane und beide nehmen immer 50% der verfügbaren Höhe in Anspruch? (Denn bei einem resize funktionierts nämlich - dies liegt an weightx und weighty)
Hier nun der Code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.table.*;
public class emailClient extends JFrame implements ActionListener {
public emailClient() {
super("eMail Client XP");
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
GridBagConstraints gbca = new GridBagConstraints();
getContentPane().setLayout(gbl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setFont(new Font("Helvetica",Font.PLAIN, 14));
//Erzeugen der Objekte
JMenuBar menuBar = new JMenuBar();
JMenu datei = new JMenu("Datei");
JMenu bearbeiten = new JMenu("Bearbeiten");
JMenu extra = new JMenu("Extra");
JMenu hilfe = new JMenu("Hilfe");
JMenuItem info = new JMenuItem("Info");
JMenuItem optionen = new JMenuItem("Optionen");
//Objekte hinzufügen
menuBar.add(datei);
menuBar.add(bearbeiten);
menuBar.add(extra);
menuBar.add(hilfe);
hilfe.add(info);
extra.add(optionen);
setJMenuBar(menuBar);
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 10; }
public int getRowCount() { return 5;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JLabel label = new JLabel("this is a test");
gbc.weightx = 0.25;
gbc.weighty = 1.0;
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(1,1,1,1);
gbc.gridy = 0;
gbc.gridx = 0;
gbc.gridheight = 2;
gbc.gridwidth = 1;
getContentPane().add(Label, gbc);
JTable table = new JTable(dataModel);
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(1,1,1,1);
gbc.gridy = 0;
gbc.gridx = 1;
gbc.gridheight = 1;
gbc.gridwidth = 1;
getContentPane().add(new JScrollPane(table), gbc);
JEditorPane editorPane = new JEditorPane();
editorPane.setContentType("text/html");
editorPane.setEditable(false);
try {
editorPane.setPage("file:///C:/index.htm");
}
catch (IOException ex) {
System.out.println("Kann die Ressource nicht laden.");
System.exit(0);
}
gbca.weightx = 1.0;
gbca.weighty = 1.0;
gbca.fill = GridBagConstraints.BOTH;
gbca.insets = new Insets(1,1,1,1);
gbca.gridy = 1;
gbca.gridx = 1;
gbca.gridheight = 1;
//gbca.gridwidth = GridBagConstraints.RELATIVE;
getContentPane().add(new JScrollPane(editorPane), gbca);
setSize(800, 550);
//Action Listener Befehle hinzufügen
info.setActionCommand("info");
info.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand()=="info") {
System.out.println("test");
}
}
public static void main(String args[])
{
new emailClient();
}
}