prosím o pomoc s oknem [JAVA]

Začínáte programovat, potřebujete s něčím poradit nebo máte snad nějaký návod? Pak je tato sekce přímo pro Vás!
Odpovědět
Uživatelský avatar
finch!CZ
V.I.P
V.I.P
Příspěvky: 1041
Registrován: 03 pro 2008 17:27
Bydliště: /dev/null
Dal poděkování: 12 poděkování
Dostal poděkování: 44 poděkování

prosím o pomoc s oknem [JAVA]

Příspěvek od finch!CZ » 21 lis 2010 23:17

Prosil bych o pomoc s oknem, nevím totiž, jak udělat to, aby se mi jtextarea zobrazila s pevně nastaveným rozměrem a měla povolené scrollování. Zkoušel jsem přímo nastavit velikost s setSize() ale to nejde stejně jako setVertical(Horizontal)ScrollBarPolicy().
Kdyby na to někdo přišel, tak bych byl rád a odměna by taky byla.

Teď to vypadá takhle, když to nic nedělá, takhle bych potřeboval, aby to vypadalo i při spuštění (co se stane, je vidět na dalším obrázku)
Obrázek

a toto to dělá
Obrázek

Kód: Vybrat vše

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class GUI extends JFrame implements Runnable{
	/**
	 * @author finch
	 */
	private static final long serialVersionUID = 1L;
	private JFrame frame;
	private JTextField serverStatusInfo;
	private JTextField clientStatusInfo;
	
	JTextArea receiveTextArray;
	JTextArea sendTextArray;
	private JScrollPane scrollPane;
	
	public GUI(){
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0); 
			}
		});
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		Font font = new Font("Helvetica", Font.PLAIN,  12);
		
		frame = new JFrame("Chatter");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    int x = (dim.width) / 3;
	    int y = (dim.height) / 4;
		
		setSize(240, 360);
		setResizable(false);
		setLocation(x, y);
		setBackground(Color.GRAY);
		
		
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch ( Exception e) {
			System.err.println("Nelze použít Look and Feel " + e );
		}
		
		Container cont = new Container();
		cont = getContentPane();
		
		FlowLayout layout = new FlowLayout();
		cont.setLayout(layout);
		
		JButton startServerButton = new JButton("  Spusť Server  ");
		startServerButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				runserver();
			}
		});
		
		JButton startClientButton = new JButton("  Spusť Klienta  ");
		startClientButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				runclient();
			}
		});
		
		JLabel serverStatus = new JLabel("    Server Status:      ");
		this.serverStatusInfo = new JTextField("                    stop                          ");
		serverStatusInfo.setEnabled(false);
		
		JLabel clientstatus = new JLabel("    Client Status:      ");
		this.clientStatusInfo = new JTextField("                    stop                          ");
		clientStatusInfo.setEnabled(false);
		
		JLabel receive = new JLabel("        Přijatá zpráva       ");
		receiveTextArray = new JTextArea(5,20);
		receiveTextArray.setFont(font);
		receiveTextArray.setLineWrap(true);
		receiveTextArray.setWrapStyleWord(true);
		//textArray.setEnabled(false);
		scrollPane = new JScrollPane(receiveTextArray,
				  ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
				  ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		//setPreferredSize(new Dimension(220, 140));
				
		JLabel send = new JLabel("      Odešli zprávu       ");
		this.sendTextArray = new JTextArea(3, 20);
		sendTextArray.setFont(font);
		sendTextArray.setLineWrap(true);
		
		
		cont.add(startServerButton );
		cont.add(startClientButton);
		cont.add( serverStatus );
		cont.add(serverStatusInfo);
		cont.add( clientstatus );
		cont.add(clientStatusInfo);
		cont.add(receive);
		cont.add(this.receiveTextArray);
		cont.add(send);
		cont.add(this.sendTextArray);
		this.setVisible(true );
	}
	
	public void runserver(){
		Thread th = new Thread(this);
		th.start();
	}
	public void run() {
		this.serverStatusInfo.setText("Server is running            ");
		Server s = new Server(this);
	}
	
	public void runclient(){
		this.serverStatusInfo.setText("Client is running            ");
		Client c = new Client();
		this.clientStatusInfo.setText("All data sent, exiting!            ");
	}
	
	public void addintoarea( String text ){
		this.receiveTextArray.setText( this.receiveTextArray.getText() + text );
	}
	
	public static void main(String[] args) {
			GUI gui = new GUI();
	}
}
Obrázek

Obrázek
Uživatelský avatar
spyware4me
Pilot
Pilot
Příspěvky: 638
Registrován: 23 srp 2005 21:49
Bydliště: Spyware
Dal poděkování: 5 poděkování
Dostal poděkování: 27 poděkování
Kontaktovat uživatele:

prosím o pomoc s oknem [JAVA]

Příspěvek od spyware4me » 22 lis 2010 06:31

On ještě někdo píše GUI ručně, když máme NetBeans, Eclipse, jDeveloper, ...?
There are 10 types of people. Those who understand binary and the others.
Uživatelský avatar
finch!CZ
V.I.P
V.I.P
Příspěvky: 1041
Registrován: 03 pro 2008 17:27
Bydliště: /dev/null
Dal poděkování: 12 poděkování
Dostal poděkování: 44 poděkování

prosím o pomoc s oknem [JAVA]

Příspěvek od finch!CZ » 22 lis 2010 15:37

ano píšu :)
Obrázek

Obrázek
Odpovědět

Zpět na „Programování“