Java Swing disposition du Panneau de
Je suis en train de travailler sur un projet en Java pour le collège, qui nous concerne de la configuration d'un Serveur TCP et le Client. Je n'ai que le cadre de travail et maintenant, pour ajouter plus d'une idée pour mon projet, je veux ajouter une interface.
Nous n'avons pas commencé l'apprentissage sur les interfaces graphiques en Java encore. Cependant j'ai envie d'essayer car je pense qu'il serait un exercice utile. J'ai un très de base GUI mis en place et le ActionListener ensemble pour le bouton. Mon problème suivant est le positionnement de mes panneaux pour un look soigné et bien rangé sur le Cadre...
Pour le moment j'ai tous les composants d'un panneau, comme on le voit ci-dessous:
public ClientGUI(){
//Initialise Frame
frame = new JFrame("TCP Client");
//Initialise Panel 1 & Components
p1 = new JPanel();
//Set Layout
p1.setLayout(new GridLayout(1,2));
//Label 1 - For TextArea
l1 = new JLabel("Chat Log");
p1.add(l1);
//TextArea - To display conversation
t1 = new JTextArea(10,10);
p1.add(t1);
//Label 2 - For TextField
l2 = new JLabel("Message");
p1.add(l2);
//Message Box - For user input
t2 = new JTextField(10);
p1.add(t2);
//Button 1 - To send message
b1 = new JButton("Send");
p1.add(b1);
//Add panels to frame
frame.add(p1);
//Frame properties...
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setVisible(true);
//Add Event listener to button
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ev){
//do something
t1.setText(t2.getText());
}
});
J'aimerais bien qu'il ressemble à quelque chose comme le rough filaire ci-dessous.
J'avais apprécions tous les commentaires que n'importe qui pourrait avoir! Merci beaucoup.
OriginalL'auteur Javacadabra | 2012-10-26
Vous devez vous connecter pour publier un commentaire.
Ce que vous voulez est appelé le BoxLayout, qui se nourrit d'éléments d'INTERFACE utilisateur dans des colonnes ou des lignes. Et puis vous pouvez imbriquer l'un dans l'autre, par exemple, une boîte horizontale panneau de disposition comme un élément dans un autre qui est vertical (type de imbriquées comme des tableaux HTML). De sorte que tous vos éléments permettraient d'aller dans un top niveau vertical BoxLayout et la ligne qui a JLabel2 et component swing jtextfield serait son propre horizontale BoxLayout imbriquée dans le top niveau de la mise en page verticale. Ici est un bon tutoriel sur les gestionnaires de disposition et il comprend le BoxLayout.
Vous êtes les bienvenus, heureux d'être de l'aide. Bon week-end!
OriginalL'auteur amphibient
Il existe de nombreuses façons différentes, et beaucoup de différents
LayoutManager
s à utiliser.Lire un peu plus sur eux ici:
Voici un exemple que j'ai faite qui utilise
GridBagLayout
:OriginalL'auteur David Kroukamp