日期:2014-05-20  浏览次数:20791 次

Java中的gui设计问题,想设计一个界面,左面显示一列按钮,右面是界面
Java中的gui设计问题,想设计一个界面,左面显示一列按钮,右面是界面,然后点击不同的按钮右面界面是不同的,这个如何做 运用什么知识或者是哪个API?是CardLayout吗?

------解决方案--------------------
Java的GUI界面,设计上不能只靠一种Layout来解决问题,而是要容器套容器,不同容器用不同的Layout,组合来发挥效力。

1、你的需求中,主容器用BorderLayout(缺省就是了);
2、准备放按钮的地方,就是(BorderLayout.WEST),这里放子容器(如JPanel),选择FlowLayout或GridLayout;然后子容器中再放按钮;
3、准备放界面的地方,就中间(BorderLayout.CENTER),也可以放个子容器(便于后续你还需要其它布局)。
------解决方案--------------------
CardLayout 对象是容器的布局管理器。它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,容器则充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可见组件。 
first(Container parent) 
翻转到容器的第一张卡片。
last(Container parent) 
翻转到容器的最后一张卡片。
next(Container parent) 
翻转到指定容器的下一张卡片。


------解决方案--------------------
支持 1 楼的
------解决方案--------------------
Java code

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();
    }
}