Java Swing 的一点小问题!

青稞梅子酒 2011-02-21 09:37:39

import java.awt.*;

import javax.swing.*;

public class list {
public static void main(String args[]) {
// Container container = f.getContentPane();
// 获得与JFrame关联的ContentPane,ContentPane的默认布局管理器是BorderLayout;

// final Object rowData[][] = {
// { "1", "one", "I" },
// { "2", "two", "II" },
// { "3", "three", "III" }};

// final String columnNames[] = { "姓名", "性别", "年龄","职务" };

final JTable Table = new JTable(20, 6);// 创建表格;
Table.setRowHeight(25);// 设置表格的行高;

JScrollPane scrollPane = new JScrollPane(Table);// 创建滚动条

JFrame f = new JFrame("员工表");// 创建JFrame对象;
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点关闭,停止进程

JPanel NorthPanel = new JPanel();
// 创建北面的JPanel对象;
JLabel label = new JLabel("员工信息表");
Font font = new Font("宋体", 10, 20);// 新建字体;
label.setFont(font);// 应用字体;
NorthPanel.add(label);// 把标签添加到NorthPanel中;

JPanel SouthPanel = new JPanel();

Button button1 = new Button("增加");

Button button2 = new Button("删除");
Button button3 = new Button("查找");
Button button4 = new Button("修改");

SouthPanel.add(button1);
SouthPanel.add(button2);
SouthPanel.add(button3);
SouthPanel.add(button4);

f.add(SouthPanel, BorderLayout.SOUTH);
f.add(NorthPanel, BorderLayout.NORTH);// 加入标签”员工信息表“;
f.add(scrollPane, BorderLayout.CENTER);// 把NorthPanel添加到container中;

// f.setResizable(false);//定义窗口是否可调整大小
f.setSize(700, 550);// 定义JFrame窗口大小;
f.setLocationRelativeTo(f);// 窗口居中显示;
f.setVisible(true);// 显示窗口
}
}

有两个问题:
1、想让表格只占窗口的一半(窗口目前的大小不变),就是设置表格的大小!
2、设置Button的大小,我用setSize方法设置不管用啊!

高手来帮帮忙!多谢啦!
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2011-02-22
  • 打赏
  • 举报
回复
对于JTable,不知道lz是要竖半还是横半,不知道这个是否达到要求:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  • 打赏
  • 举报
回复
jButtonDelete.setBounds(new Rectangle(838, 492, 69, 42)); //这里可以调节Button的位置和大小
  • 打赏
  • 举报
回复
给你看,我是怎样设置表格大小的
[code=Jav]a




import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;


public class JPanel_productManage extends JDialog implements ActionListener {

private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private DefaultTableModel defaultTableModel = null;
static Vector vecTitle = null;
private JButton jButtonExit = null;
private JButton jButtonDelete = null;


public Vector getVecTitle(){
vecTitle = new Vector();
vecTitle.add("商品编号");
vecTitle.add("商品名称");
vecTitle.add("条形码");
vecTitle.add("商品类别");

return vecTitle;
}
public JPanel_productManage() {

initialize();
this.setVisible(true);
}


private void initialize() {
this.setTitle("商品信息管理");
this.setSize(1024, 575);
this.setModal(true);
this.setLocationRelativeTo(this);
this.setContentPane(getJContentPane());
}

private JPanel getJContentPane() {

if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJButtonExit(), null);
jContentPane.add(getJButtonDelete(), null);
jContentPane.setBackground(SystemColor.darkGray);//背景颜色
}
return jContentPane;
}

private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(0, 10, 500, 451));// 改变大小可以看到表格变化
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}


JTable getJTable() {
if (jTable == null) {
jTable = new JTable(getDefaultTableModel());
jTable.getTableHeader().setReorderingAllowed(false);
jTable.setRowHeight(25);
}
return jTable;
}

private DefaultTableModel getDefaultTableModel(){
Vector vecData = new Vector();
defaultTableModel = new DefaultTableModel(vecData,getVecTitle());
return defaultTableModel;
}

private JButton getJButtonDelete() {
if (jButtonDelete == null) {
jButtonDelete = new JButton();
jButtonDelete.setBounds(new Rectangle(838, 492, 69, 42));
jButtonDelete.setBackground(Color.gray);
jButtonDelete.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
jButtonDelete.setText("删除");
}
return jButtonDelete;
}
private JButton getJButtonExit() {
if (jButtonExit == null) {
jButtonExit = new JButton();
jButtonExit.setBounds(new Rectangle(917, 492, 69, 42));
jButtonExit.setBackground(Color.gray);
jButtonExit.setFont(new Font("\u5fae\u8f6f\u96c5\u9ed1", Font.BOLD, 12));
jButtonExit.setText("退出");
jButtonExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
dispose();

}
});
}
return jButtonExit;
}
public void actionPerformed(ActionEvent e) {

}

public static void main(String args[]) {
JPanel_productManage info = new JPanel_productManage();
info.setVisible(true);
}

}


[/code]



希望对你有帮助

huyong479072052 2011-02-21
  • 打赏
  • 举报
回复
1、想让表格只占窗口的一半(窗口目前的大小不变),就是设置表格的大小!

[code=Javaa]table.setPreferredScrollableViewportSize(new Dimension(500,120));

// 设置表头不可拖动
table.getTableHeader().setReorderingAllowed(false);

// 设置列宽不可拖动
table.getTableHeader().setResizingAllowed(false);[/code]
2、设置Button的大小,我用setSize方法设置不管用啊!
因为用了默认的布局管理器,会自动配置按钮大小
想要设置大小 要将布局管理器设为null
[code=Javaa]setLayout(null);[/code]

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧