Ste*_*a D 5 java swing jtable jscrollpane
我在JScrollPane中有一个JTable.我希望最小宽度大约为600宽表.我尝试在表格,滚动窗格和面板上设置最小尺寸.大小根本没有变化,我错过了什么?很难谷歌这一点,因为所有出现的是如何设置列的宽度.

这是代码:
class SearchResults extends JPanel {
/**
* Create the panel.
*/
public SearchResults() {
setMinimumSize(new Dimension(640, 480));
String[][] data= new String[][] {
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"}};
String[] col = new String[] {
"Last Name", "First Name", "Middle Initial", "Phone Number", "Email", "Project Title", "Project Description", "Amount", "Date Approved", "Date Completed", "College", "Faculty Mentor Name", "Co Grantee", "Major", "Travel Required", "Travel Purpose", "Travel Cost", "Travel Start Date", "Travel End Date", "View"};
JTable table = new JTable(data,col);
table.setMinimumSize(new Dimension(600,200));
JTableHeader header = table.getTableHeader();
JScrollPane pane = new JScrollPane(table);
pane.setMinimumSize(new Dimension(600, 23));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
add(pane);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我将它添加到JFrame的地方:
public class Test extends JFrame
{
public static void main(String[] args)
{
Test test = new Test();
test.run();
}
public Test()
{
super("JAVA TEST!");
}
private void run()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SearchResults resultsPanel = new SearchResults();
resultsPanel.setMinimumSize(new Dimension(600,200));
add(resultsPanel);
setSize(800,600);
setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
kle*_*tra 10
有几个问题:
相应地,有几个螺丝要调整(删除所有setXXSize调用:) :)
在代码中(并使用SwingX项目的JXTable,因为它已经有第二个api :-))
String[][] data= new String[][] {
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"}};
String[] col = new String[] {
"Last Name", "First Name", "Middle Initial", "Phone Number",
"Email", "Project Title", "Project Description", "Amount",
"Date Approved", "Date Completed", "College", "Faculty Mentor Name",
"Co Grantee", "Major", "Travel Required", "Travel Purpose",
"Travel Cost", "Travel Start Date", "Travel End Date", "View"};
JXTable table = new JXTable(data,col);
table.setVisibleColumnCount(10);
table.setHorizontalScrollEnabled(true);
JScrollPane pane = new JScrollPane(table);
JComponent comp = new JPanel(new BorderLayout());
comp.add(pane);
Run Code Online (Sandbox Code Playgroud)
编辑
解决80%的要求(以及MigLayout的一点点预告:-))
// 80% with a minimum of 600 logical pixel:
MigLayout layout = new MigLayout("wrap 2, debug",
"[600:pref, fill, grow][20%]");
JComponent comp = new JPanel(layout);
comp.add(pane, "spany");
comp.add(new JLabel("just something"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25135 次 |
| 最近记录: |