Java的GUI界面,设计上不能只靠一种Layout来解决问题,而是要容器套容器,不同容器用不同的Layout,组合来发挥效力。1、你的需求中,主容器用BorderLayout(缺省就是了);
2、准备放按钮的地方,就是(BorderLayout.WEST),这里放子容器(如JPanel),选择FlowLayout或GridLayout;然后子容器中再放按钮;
3、准备放界面的地方,就中间(BorderLayout.CENTER),也可以放个子容器(便于后续你还需要其它布局)。
2、准备放按钮的地方,就是(BorderLayout.WEST),这里放子容器(如JPanel),选择FlowLayout或GridLayout;然后子容器中再放按钮;
3、准备放界面的地方,就中间(BorderLayout.CENTER),也可以放个子容器(便于后续你还需要其它布局)。
解决方案 »
- 排序算法,为什么原数组array 里面的数也被排序了?
- Applet
- HashSet或LinkedHashSet不使用迭代器能删除里面的对象吗?
- 大家帮忙给看下,这个C/S小程序那里错了?谢谢!
- 小弟弟刚学servlet.想请教大家一个问题!
- classpath、path在Winxp中如何设置?
- 如何知道一个连接的资源是否存在和连接会否超时!
- 请问哪里有weblogic的中文帮助文件?
- ☆☆☆☆☆☆☆请问一下上海市的图书批发市场在什么地方啊,就是可以打7、8折的地方。谢谢大家!☆☆☆☆☆☆
- 救急!!!!!运行错误
- 各位大手能为小弟解释下这个findOne方法吗?this又是代表什么意思?
- 帮忙看我这个程序哪里错了,能编译但是运行不了。
first(Container parent)
翻转到容器的第一张卡片。
last(Container parent)
翻转到容器的最后一张卡片。
next(Container parent)
翻转到指定容器的下一张卡片。
import java.awt.BorderLayout;
import java.awt.Color;import javax.swing.JButton;
import javax.swing.JPanel;public class SwingTest extends javax.swing.JFrame{ /**
*
*/
private static final long serialVersionUID = 1L; public SwingTest(){
//按钮
JButton jb = new JButton();
//分配区域
JPanel jp = new JPanel();
jp.setSize(150, 500);
jp.setBackground(Color.PINK);
jp.add(jb);
//设置SwingTest
add(BorderLayout.WEST, jp);
setLayout(new BorderLayout());
setBounds(0,0,800,500);
setDefaultCloseOperation(3);
setVisible(true);
}
public static void main(String args[]){
new SwingTest();
}
}
可以准备若干个JPanel,里面放置各种不同面板内容,都加入到CENTER区域。然后根据按钮不同,选择显示其中某个JPanel而隐藏所有其它的JPanel。
然后根据所按得按钮 来计算需要的component位置 和前后component的间隔
可参考下面的代码
private void animate() {
Component[] comps = iconPanel.getComponents(); int startPos_x = X_MARGIN;
for(int i = 0; i < startIndex; i++) {
JButton btn = (JButton)comps[i];
Dimension dim = btn.getPreferredSize(); startPos_x -= (dim.width + X_MARGIN);
} for(int i = 0; i < comps.length; i++){
JButton btn = (JButton)comps[i];
Dimension dim = btn.getPreferredSize(); Rectangle rect = new Rectangle(startPos_x, Y_MARGIN, dim.width, dim.height);
btn.setBounds(rect);
startPos_x += dim.width + X_MARGIN;
}
}
//packge GUI;
import GUI.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
//import javax.security.auth.login.*;
public class SystemManagerGUI extends JFrame{
private JPanel panela,panelb;
private BorderLayout layout1;
private FlowLayout layout2;
private CardLayout layout3;
private Container con1;
private JButton button1,button2;
public SystemManagerGUI(){
super("BMS-SystemManager");
layout1=new BorderLayout();
layout2=new FlowLayout(FlowLayout.RIGHT,100,100);
panela=new JPanel();
panelb=new JPanel();
ButtonHandler handler=new ButtonHandler();
button1=new JButton("add a book manager");
button1.addActionListener(handler);
button2=new JButton("add a reader");
button2.addActionListener(handler);
panela.setLayout(layout2);
panela.add(button1);
panela.add(button2);
panelb.setLayout(layout3);
panelb.add(new ADD_BM());
setLayout(layout1);
con1=getContentPane();
con1.add(panela,BorderLayout.WEST);
con1.add(panelb,BorderLayout.CENTER);
setSize(900,500);
setVisible(true);
setResizable(false);
}
private class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent event){
String string="";
if(event.getSource()==button1){
string="true";
}
else if(event.getSource()==button2){
string="false";
}
JOptionPane.showMessageDialog(null,string);
}
}
public static void main(String[] args){
SystemManagerGUI sysmanager=new SystemManagerGUI();
sysmanager.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}//ADD_BM
package GUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
//import javax.security.auth.login.*;
public class ADD_BM extends JPanel{
private JPanel panela,panelb,panelc,paneld;
private FlowLayout layout1,layout2,layout3,layout4,layout5;
private Container con1;
private JTextField text1,text2;
private JPasswordField text3;
private JLabel label1,label2,label3;
private JButton button1,button2;
public ADD_BM(){
//super("BMS-Login");
panela=new JPanel();
panelb=new JPanel();
panelc=new JPanel();
paneld=new JPanel();
layout1=new FlowLayout(FlowLayout.CENTER,100,60);
layout2=new FlowLayout(FlowLayout.CENTER,100,0);
layout3=new FlowLayout(FlowLayout.CENTER,100,0);
layout4=new FlowLayout(FlowLayout.CENTER,90,0);
layout5=new FlowLayout(FlowLayout.CENTER,100,0);
TextFieldHandler handler=new TextFieldHandler();
Font font=new Font(("Dialog"),0,20);
label1=new JLabel("user_id");
label1.setFont(font);
text1=new JTextField(35);
text1.addActionListener(handler);
panela.setLayout(layout2);
panela.add(label1);
panela.add(text1);
label2=new JLabel("username");
label2.setFont(font);
text2=new JPasswordField(35);
text2.addActionListener(handler);
panelb.setLayout(layout3);
panelb.add(label2);
panelb.add(text2);
label3=new JLabel("password");
label3.setFont(font);
text3=new JPasswordField(35);
text3.addActionListener(handler);
panelc.setLayout(layout4);
panelc.add(label3);
panelc.add(text3);
button1=new JButton("OK");
button2=new JButton("exit");
paneld.setLayout(layout5);
paneld.add(button1);
paneld.add(button2);
setLayout(layout1);
add(panela);
add(panelb);
add(panelc);
add(paneld);
//panelw.setSize(900,500);
setVisible(true);
//panelw.setResizable(false);
}
private class TextFieldHandler implements ActionListener{
public void actionPerformed(ActionEvent event){
String string="";
if(event.getSource()==text1){
string=event.getActionCommand();
}
else if(event.getSource()==text2){
string=event.getActionCommand();
}
else if(event.getSource()==text3){
string=event.getActionCommand();
new String(text3.getPassword());
}
JOptionPane.showMessageDialog(null,string);
}
}
public static void main(String[] args){
//ADD_BM addGUI=new ADD_BM();
//addGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}