java在borderlayout中怎么改变按钮位置
importjava.awt.BorderLayout;importjava.awt.CardLayout;importjava.awt.Font;importjava....
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;
public class StuPanel extends JPanel implements ActionListener
{
JButton b1,b2,b3;
StuInfo stuinfo;
CourseList courselist;
ChooseList chooselist;
JPanel p1=new JPanel(),
p2=new JPanel(),
p3=new JPanel();
static JPanel pCenter=new JPanel();
static CardLayout card=new CardLayout();
StuPanel(MyFrame f)
{
setLayout(new BorderLayout());
p3.setLayout(new BorderLayout());
p1.setLayout(new BorderLayout());
pCenter.setLayout(card);
JLabel label=new JLabel("学生选课系统");
label.setFont(new Font("TimesRoman",Font.ITALIC,15));
p1.add(label);
b1=new JButton(" 个 人 信 息 ");
b2=new JButton(" 课 程 列 表 ");
b3=new JButton(" 已 选 课 程 ");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
p2.add(b1);
p2.add(b2);
p2.add(b3);
stuinfo=new StuInfo(f);
courselist=new CourseList();
chooselist=new ChooseList();
pCenter.add("个人信息",stuinfo);
pCenter.add("课程列表",courselist);
pCenter.add("已选课程",chooselist);
p3.add(p2,BorderLayout.WEST);
p3.add(pCenter,BorderLayout.CENTER);
add(p1,BorderLayout.WEST);
add(p3,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
card.show(pCenter, "个人信息");
if(e.getSource()==b2)
card.show(pCenter, "课程列表");
if(e.getSource()==b3)
{
ChooseList.updateTable();
card.show(pCenter, "已选课程");
}
}
}
我想把上面三个按钮竖过来放在左边 求大神指导怎么改代码 展开
import java.awt.CardLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;
public class StuPanel extends JPanel implements ActionListener
{
JButton b1,b2,b3;
StuInfo stuinfo;
CourseList courselist;
ChooseList chooselist;
JPanel p1=new JPanel(),
p2=new JPanel(),
p3=new JPanel();
static JPanel pCenter=new JPanel();
static CardLayout card=new CardLayout();
StuPanel(MyFrame f)
{
setLayout(new BorderLayout());
p3.setLayout(new BorderLayout());
p1.setLayout(new BorderLayout());
pCenter.setLayout(card);
JLabel label=new JLabel("学生选课系统");
label.setFont(new Font("TimesRoman",Font.ITALIC,15));
p1.add(label);
b1=new JButton(" 个 人 信 息 ");
b2=new JButton(" 课 程 列 表 ");
b3=new JButton(" 已 选 课 程 ");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
p2.add(b1);
p2.add(b2);
p2.add(b3);
stuinfo=new StuInfo(f);
courselist=new CourseList();
chooselist=new ChooseList();
pCenter.add("个人信息",stuinfo);
pCenter.add("课程列表",courselist);
pCenter.add("已选课程",chooselist);
p3.add(p2,BorderLayout.WEST);
p3.add(pCenter,BorderLayout.CENTER);
add(p1,BorderLayout.WEST);
add(p3,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
card.show(pCenter, "个人信息");
if(e.getSource()==b2)
card.show(pCenter, "课程列表");
if(e.getSource()==b3)
{
ChooseList.updateTable();
card.show(pCenter, "已选课程");
}
}
}
我想把上面三个按钮竖过来放在左边 求大神指导怎么改代码 展开
2个回答
展开全部
Java的界面布局,效果最好的就是无布局或者多种布局结合。
你的程序中p2这个JPanel使用的默认布局。要改为竖向排列有以下方式:
1)GridLayout 网格布局,顶一个一个3行1列的网格就是了。
2)BoxLayout 这个就像一个盒子,你只要规定盒子是按照X轴方向排列还是Y轴方向排列。
3)GridBagLayout 无序布局,这个比较难用,但用好了效果最好。具体的使用方式你在百度知道里搜索下GridBagLayout 无序布局就能找到,我写过一个比较详细的案例。
最后
你这种左右分割的布局,建议使用JSplitPane 来控制。这个是一个左右或者上下分割的面板容器。
你的程序中p2这个JPanel使用的默认布局。要改为竖向排列有以下方式:
1)GridLayout 网格布局,顶一个一个3行1列的网格就是了。
2)BoxLayout 这个就像一个盒子,你只要规定盒子是按照X轴方向排列还是Y轴方向排列。
3)GridBagLayout 无序布局,这个比较难用,但用好了效果最好。具体的使用方式你在百度知道里搜索下GridBagLayout 无序布局就能找到,我写过一个比较详细的案例。
最后
你这种左右分割的布局,建议使用JSplitPane 来控制。这个是一个左右或者上下分割的面板容器。
2014-01-02
展开全部
再放容器,再容器里面可以用无Layout绝对定位
追问
代码应该怎么写啊 求指教啊。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |