次のコードの Grouplayout に問題があります。解決方法を教えてください
出力ファイルもアップロードしましたが、配置に問題があるかどうかはわかりません。キングリーを見て、私がそれを理解するのを手伝ってください。
package javaapplication1;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Progress extends JFrame implements ActionListener {
static JFrame frame;
public JLabel ClientIP;
JTextField ip;
JLabel ClientPassword;
JTextField pass;
JLabel Videoname;
JTextField vname;
JLabel perccomplete;
JTextField percent;
JLabel PacketsSent;
JTextField pacsent;
JLabel Connectiontype;
JTextField conntype;
JLabel noofvideossent;
JTextField videosend;
JButton disconnect;
JButton refresh;
JButton ok;
public Progress() {
ClientIP = new JLabel("Client's IP:");
ClientPassword = new JLabel("Clients Password:");
Videoname = new JLabel("Video being Transfered:");
perccomplete = new JLabel("% of transfer Complete:");
PacketsSent = new JLabel("No of Packets sent:");
Connectiontype = new JLabel("Connection Type:");
noofvideossent = new JLabel("No of Videos Sent:");
ip = new JTextField(Ipad);
ip.setColumns(20);
pass = new JTextField(Ipass);
pass.setColumns(20);
vname = new JTextField(Iselvid);
vname.setColumns(20);
percent = new JTextField("10%");
percent.setColumns(20);
pacsent = new JTextField(String.valueOf(RTSPSeqNb));
pacsent.setColumns(20);
String c;
if (clientConnected == true) {
c = "TCP";
} else {
c = "not Connected";
}
conntype = new JTextField(c);
conntype.setColumns(20);
videosend = new JTextField(String.valueOf(videocount));
videosend.setColumns(20);
//Tell accessibility tools about label/textfield pairs.
ClientIP.setLabelFor(ip);
ClientPassword.setLabelFor(pass);
Videoname.setLabelFor(vname);
perccomplete.setLabelFor(percent);
PacketsSent.setLabelFor(pacsent);
Connectiontype.setLabelFor(conntype);
noofvideossent.setLabelFor(videosend);
//Lay out the labels in a panel.
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
// Turn on automatically creating gaps between components that touch
// the edge of the container and the container.
layout.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
hGroup.addGroup(layout.createParallelGroup(Alignment.LEADING).
addComponent(ClientIP).addComponent(ClientPassword).addComponent(Videoname).addComponent(perccomplete).addComponent(PacketsSent).addComponent(Connectiontype).addComponent(noofvideossent));
hGroup.addGroup(layout.createParallelGroup(Alignment.LEADING).
addComponent(ip).addComponent(pass).addComponent(vname).addComponent(percent).
addComponent(pacsent).addComponent(conntype).addComponent(videosend));
layout.setHorizontalGroup(hGroup);
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
vGroup.addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(ClientIP)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(ClientPassword)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(Videoname)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(perccomplete)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(PacketsSent)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(Connectiontype)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(noofvideossent));
vGroup.addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(ip)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(pass)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(vname)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(percent)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(pacsent)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(conntype)).addGroup(layout.createParallelGroup(Alignment.LEADING).addComponent(videosend));
layout.setVerticalGroup(vGroup);
// JPanel buttonPane = new JPanel(new GridLayout(0,1));
// disconnect = new JButton("Disconnect Client");
// disconnect.setActionCommand("Disconnect");
// disconnect.addActionListener(this);
// refresh = new JButton("Refresh Details");
// refresh.setActionCommand("refresh");
// refresh.addActionListener(this);
// ok = new JButton("OK");
// ok.setActionCommand("ok");
// ok.addActionListener(this);
// buttonPane.add(refresh);
// buttonPane.add(disconnect);
// buttonPane.add(ok);
// add(buttonPane, BorderLayout.AFTER_LAST_LINE);
setTitle("Find");
pack();
}
private static void createAndShowGUI() {
//Create and set up the window.
//frame = new JFrame("Connected Client's Details");
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new Progress().setVisible(true);
//Add contents to the window.
// frame.add(new Progress());
// //Display the window.
// frame.pack();
// frame.setVisible(true);
}
public static void main(String args[]) {
//Schedule a job for the event dispatch thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//Turn off metal's use of bold fonts
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
public void actionPerformed(ActionEvent e) {
if ("Disconnect".equalsIgnoreCase(e.getActionCommand())) {
ClientIPAddr = null;
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.");
}
if ("refresh".equalsIgnoreCase(e.getActionCommand())) {
String Ipad = null, Ipass, Iselvid;
if (ClientIPAddr == null || ClientIPAddr.equals("")) {
Ipad = "Not Connected";
} else {
Ipad = ClientIPAddr.toString();
}
if (vFilePassword == null || vFilePassword.equals("")) {
Ipass = "No Password";
} else {
Ipass = vFilePassword;
}
if (selected_video == null || selected_video.equals("")) {
Iselvid = "Not Selected";
} else {
Iselvid = selected_video;
}
ip.setText(Ipad);
pass.setText(Ipass);
vname.setText(Iselvid);
percent.setText("10%");
pacsent.setText(String.valueOf(RTSPSeqNb));
String c;
if (clientConnected == true) {
c = "TCP";
} else {
c = "not Connected";
}
conntype.setText(c);
videosend.setText(String.valueOf(videocount));
}
if ("ok".equalsIgnoreCase(e.getActionCommand())) {
frame.dispose();
}
}
}