P
peterchen55
Gast
Guten Tag,
Ich habe 2 Probleme mit meinem Programm (source siehe unten):
1. Ich verwende das GridBagLayout (7x7). Und die verwendete JTextArea-Komponente soll 6 Spalten und 6 Zeilen groß sein. Das macht er aber nur dann, wenn das JTextArea mit mehrzeiligem Text komplett gefüllt wird. Ansonsten nimmt es weniger Platz ins Anspruch, als es soll.
2. Ich will ein JScrollPane für das JTextArea. Wenn Ich das aber mache, wird das JTextArea so klein, dass es im window so gut wie garnicht mehr erkennbar ist: Es wird winzig klein! Das darf so natürlich nicht sein, Ich will, dass es trotz JScrollPane groß bleibt (6x6!!!).
P.S.: Das Layout habe Ich mir so gedacht. In der ersten Zeile sind 7 gleich große Elemente: JLabel, JTextField, JLabel, JTextField, JLabel, JTextField, JButton. Und die nächsten 6 Spalten soll eben dieses JtextArea komplett bis zum Zeilenende ausfüllen, und halt wie gesagt: Am besten mit JScrollPane.
Hier der Source:
MfG
Peter
Ich habe 2 Probleme mit meinem Programm (source siehe unten):
1. Ich verwende das GridBagLayout (7x7). Und die verwendete JTextArea-Komponente soll 6 Spalten und 6 Zeilen groß sein. Das macht er aber nur dann, wenn das JTextArea mit mehrzeiligem Text komplett gefüllt wird. Ansonsten nimmt es weniger Platz ins Anspruch, als es soll.
2. Ich will ein JScrollPane für das JTextArea. Wenn Ich das aber mache, wird das JTextArea so klein, dass es im window so gut wie garnicht mehr erkennbar ist: Es wird winzig klein! Das darf so natürlich nicht sein, Ich will, dass es trotz JScrollPane groß bleibt (6x6!!!).
P.S.: Das Layout habe Ich mir so gedacht. In der ersten Zeile sind 7 gleich große Elemente: JLabel, JTextField, JLabel, JTextField, JLabel, JTextField, JButton. Und die nächsten 6 Spalten soll eben dieses JtextArea komplett bis zum Zeilenende ausfüllen, und halt wie gesagt: Am besten mit JScrollPane.
Hier der Source:
Code:
//kleiner FTP-Client, der nur Dateien im Hauptverzeichnis auflisten kann
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import sun.net.*;
import sun.net.ftp.*;
import java.io.*;
public class FTP_Client2 extends JFrame implements ActionListener {
private JTextField tf_host = new JTextField ("ftp.adobe.com") ;
private JTextField tf_user = new JTextField ("anonymous") ;
private JTextField tf_pw = new JTextField ("a@b.c") ;
private JLabel lbl_host = new JLabel ("Host:") ;
private JLabel lbl_user = new JLabel ("User:") ;
private JLabel lbl_pw = new JLabel ("Pass:") ;
private JTextArea file_list = new JTextArea ("");
public FTP_Client2 (String Title) {
super (Title);
GridBagLayout l = new GridBagLayout ();
setLayout (l);
setDefaultCloseOperation (EXIT_ON_CLOSE);
setSize (600, 400);
GridBagConstraints c = new GridBagConstraints ();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
c.gridheight = 1;
c.gridwidth = 1;
l.setConstraints (lbl_host, c);
add (lbl_host);
l.setConstraints (tf_host, c);
add (tf_host);
l.setConstraints (lbl_user, c);
add (lbl_user);
l.setConstraints (tf_user, c);
add (tf_user);
l.setConstraints (lbl_pw, c);
add (lbl_pw);
l.setConstraints (tf_pw, c);
add (tf_pw);
JButton b = new JButton ("connect");
c.gridwidth = GridBagConstraints.REMAINDER;
l.setConstraints (b, c);
add (b);
b.addActionListener (this);
c.gridheight = 6;
c.gridwidth = GridBagConstraints.REMAINDER;
file_list = new JTextArea ("");
l.setConstraints (file_list, c);
add(file_list);
setVisible (true);
}
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand()=="connect")
{
System.out.println ("--- connect ---");
try {
FtpClient ftp = new FtpClient (tf_host.getText());
ftp.login (tf_user.getText(), tf_pw.getText());
ftp.ascii ();
BufferedReader r;
InputStream t;
String line = null;
t = ftp.list ();
line = null;
r = new BufferedReader(new InputStreamReader(t));
file_list.setText("");
while ((line = r.readLine ()) != null)
{
if (file_list.getText().length()==0)
file_list.setText(line);
else
file_list.setText(file_list.getText() + "\n" + line);
System.out.println (line);
}
t.close ();
} catch (IOException e) {
System.err.println (e);
}
}
}
public static void main (String [] args) {
new FTP_Client2 ("Hardcore FTP Client");
}
}
MfG
Peter