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

SWT窗口和表格问题,请高人指点
1.我现在做一个SWT项目,有一个主窗体,上面有新建,打开保存等按扭,当我点新建时弹出一个窗口,我应该怎么让弹出的这个窗口最大化后别覆盖我原来的主窗口,而是在他的下面啊?

2.还有就是表格怎么进行编辑,如有原码能给小弟一份最好,不胜感激,网上那些太乱了。

------解决方案--------------------
package csdn;

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class tableTest
{

private static JTable table;

/**
* @param args
*/
public static void main(String[] args)
{

tabFrame frame = new tabFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class tabFrame extends JFrame
{
private JTable table;

public tabFrame()
{
setTitle("表格模型测试");
setSize(400, 300);
getContentPane().setLayout(null);

final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(65, 10, 255, 201);
getContentPane().add(scrollPane);

TableModel model = new InvestmentTableModel(30, 5, 10); // 创建表格模型对象
table = new JTable(model); // 创建表格,载入表格模型
scrollPane.setViewportView(table); // 在滚动框中加入表格
}
}

/**
 * 表格模型类
 */
class InvestmentTableModel extends AbstractTableModel
{
private int years;
private int minRate;
private int maxRate;
private static double INITIAL_BALANCE = 100000.0;

public InvestmentTableModel(int y, int r1, int r2)
{
years = y;
minRate = r1;
maxRate = r2;
}

/**
* 设置行数
*/
public int getRowCount()
{
return years;
}

/**
* 设置列数
*/
public int getColumnCount()
{
return maxRate - minRate + 1;
}

/**
* 填充各单元格值
*/
public Object getValueAt(int r, int c)
{
double rate = (c + minRate) / 100.0;
int nperiods = r;
double futurBalance = INITIAL_BALANCE * Math.pow(1 + rate, nperiods);
return String.format("%.2f", futurBalance);
}

/**
* 设定列名
*/
public String getColumnName(int c)
{
return (c + minRate) + "%";
}
}

楼主看看是不是这样的啊
------解决方案--------------------
你这里设置铅笔、钢笔,油笔和名称是同一列的,应该不能再把铅笔、钢笔,油笔设置为column啦
------解决方案--------------------
怎么没人回答呀,名位大虾帮忙回答下吧。。。谢谢, 
还有,怎么让表格的列向下排呀,他默认是横向排啊,,
这个你可以把铅笔、钢笔,油笔设置为item的第一个column的值,比如:
Table table=new Table(shell,SWT.NONE);
TableColumn column1=new TableColumn(table,SWT.NONE);
column1.setText("名称");
//创建第二列
TableColumn column2=new TableColumn(table,SWT.NONE);
column2.setText("价格");
//创建铅笔、钢笔,油笔数据项
TableItem item1=new TableItem(table,SWT.NONE);
item1.setText(0,"铅笔");
TableItem item2=new TableItem(table,SWT.NONE);
item2.setText(0,"钢笔");
TableItem item3=new TableItem(table,SWT.NONE);
item3.setText(0,"油笔");
这样试试