那位高手帮忙看一下,如何让组件居中显示
下面代码可以直接运行
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;class exper_4_1
{
JFrame frame=new JFrame("frame");
JPanel p1,p2,p3,p4,p5;
JLabel lab1,lab2;
JTextField t1,t2;
JButton b1,b2,b3;
public static void main(String[] args)
{
exper_4_1 exp=new exper_4_1();
exp.go();
}
public void go()
{
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p4=new JPanel();
p5=new JPanel(); lab1=new JLabel("Source");
lab2=new JLabel("Target");
t1=new JTextField(15);
t2=new JTextField(15);
p1.add(lab1);
p1.add(t1);
p2.add(lab2);
p2.add(t2);
p3.setLayout(new GridLayout(2,1));
p3.add(p1);
p3.add(p2); b1=new JButton("Clear");
b2=new JButton("Copy");
b3=new JButton("Close");
p4.add(b1);
p4.add(b2);
p4.add(b3); p5.setLayout(new GridLayout(2,1));
p5.add(p3);
p5.add(p4); ActionListener b=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JButton b=(JButton)e.getSource();
if(b==b1)
{
t1.setText("");
t2.setText("");
}
else if(b==b2)
{
t2.setText(t1.getText());
}
else
{
System.exit(0);
}
}
};
b1.addActionListener(b);
b2.addActionListener(b);
b3.addActionListener(b);
Container cp=frame.getContentPane();
cp.setLayout(new BorderLayout());
cp.add(p5,"Center"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}代码直接可以运行,但我想让所有组件都距窗体边界有一段距离,类似于“回”结构,那位高手帮忙指点一下,拜托拜托~~
下面代码可以直接运行
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;class exper_4_1
{
JFrame frame=new JFrame("frame");
JPanel p1,p2,p3,p4,p5;
JLabel lab1,lab2;
JTextField t1,t2;
JButton b1,b2,b3;
public static void main(String[] args)
{
exper_4_1 exp=new exper_4_1();
exp.go();
}
public void go()
{
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p4=new JPanel();
p5=new JPanel(); lab1=new JLabel("Source");
lab2=new JLabel("Target");
t1=new JTextField(15);
t2=new JTextField(15);
p1.add(lab1);
p1.add(t1);
p2.add(lab2);
p2.add(t2);
p3.setLayout(new GridLayout(2,1));
p3.add(p1);
p3.add(p2); b1=new JButton("Clear");
b2=new JButton("Copy");
b3=new JButton("Close");
p4.add(b1);
p4.add(b2);
p4.add(b3); p5.setLayout(new GridLayout(2,1));
p5.add(p3);
p5.add(p4); ActionListener b=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JButton b=(JButton)e.getSource();
if(b==b1)
{
t1.setText("");
t2.setText("");
}
else if(b==b2)
{
t2.setText(t1.getText());
}
else
{
System.exit(0);
}
}
};
b1.addActionListener(b);
b2.addActionListener(b);
b3.addActionListener(b);
Container cp=frame.getContentPane();
cp.setLayout(new BorderLayout());
cp.add(p5,"Center"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}代码直接可以运行,但我想让所有组件都距窗体边界有一段距离,类似于“回”结构,那位高手帮忙指点一下,拜托拜托~~
frame.setLocationRelativeTo(null);
或者Toolkit tkt= Toolkit.getDefaultToolkit();
Dimension screenSize = tkt.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
frame.setLocation(screenWidth/2, screenHeight/2);
frame.setLocationRelativeTo(null);方法二:
Dimension winSize = Toolkit.getDefaultToolkit().getScreenSize(); //屏幕分辨率
frame.setLocation((winSize.width - frame.getWidth()) / 2, (winSize.height - frame.getHeight()) / 2); //窗口定位方法三:Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
setBounds(
screenSize.width/4,
screenSize.height/4,
screenSize.width/2,
screenSize.height/2
下面是个例子。。
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;/**
*
* @author Hongyang Sun
*/
public class SubFrame extends javax.swing.JFrame {
static boolean loadMotifFile = false;
static boolean loadRegulatorFile = false;
static boolean loadGoFile = false;
boolean loadCondAnnotationCategoryFile = false;
boolean showFinishPop = false;
/** Creates new form NewFrame */
public SubFrame() {
initComponents();
} /** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { jLabel3 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Example"); jLabel3.setText("Output Data:"); jTextField1.setText("Necessary");
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
}); jButton1.setText("Browse");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
}); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(74, 74, 74)
.addComponent(jLabel3)
.addGap(74, 74, 74)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(110, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(261, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(231, 231, 231))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(52, 52, 52)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(39, 39, 39)
.addComponent(jButton1)
.addGap(25, 25, 25))
); pack();
}// </editor-fold> private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
} //For parsing DISTILLER output
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
File f = null;
String fileName = "";
try {
f = new File(fileName);
} catch (Exception ex) {
f = null;
} JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Select a file to open...");
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setSelectedFile(f);
//fileChooser.addChoosableFileFilter(new ImageFileFilter(".m")); int choice = fileChooser.showOpenDialog(this);
if (choice == JFileChooser.APPROVE_OPTION) {
fileName = fileChooser.getSelectedFile().getAbsolutePath();
System.out.println("Starting with file: " + fileName); jTextField1.setText(fileName);
}
} //Save the XML file to a directory
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new SubFrame().setVisible(true);
}
});
} // Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}
import java.awt.event.*;class exper_4_1 {
JFrame frame = new JFrame("frame");
JPanel p1, p2, p3, p4, p5;
JLabel lab1, lab2;
JTextField t1, t2;
JButton b1, b2, b3; public static void main(String[] args) {
exper_4_1 exp = new exper_4_1();
exp.go();
} public void go() { p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
p4 = new JPanel();
p5 = new JPanel(); lab1 = new JLabel("Source");
lab2 = new JLabel("Target"); t1 = new JTextField(15);
t2 = new JTextField(15); p1.add(lab1);
p1.add(t1);
p2.add(lab2);
p2.add(t2); p3.setLayout(new GridLayout(2, 1));
p3.add(p1);
p3.add(p2); b1 = new JButton("Clear");
b2 = new JButton("Copy");
b3 = new JButton("Close"); p4.add(b1);
p4.add(b2);
p4.add(b3); p5.setLayout(new GridLayout(2, 1));
p5.add(p3);
p5.add(p4); ActionListener b = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource();
if (b == b1) {
t1.setText("");
t2.setText("");
} else if (b == b2) {
t2.setText(t1.getText());
} else {
System.exit(0);
}
}
};
b1.addActionListener(b);
b2.addActionListener(b);
b3.addActionListener(b);
frame.add(new BorderLayout().CENTER, p5);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 150); frame.setVisible(true);
}
}小弟也刚学java 错了别见怪!