看来MigLayout被JScrollPane对象中包含的JTable对象搞糊涂了.由于在JScrollPane中使用JTable似乎很常见,我认为找出原因很重要.
在附加的示例程序中,创建了一个简化的表单,由12行和4列组成.所有宽度和高度均设置为百分比.表单中添加了许多组件,所有组件都按单元格位置添加.一些跨越行或列.最后一列显示单元格行索引和大小百分比.
如果程序以参数"JLabel"启动,则JSCrollPane中包含的JLabel将添加到第0列,所有对齐看起来都很好.如果程序以参数"JTable"启动,则所有列的行大小都会中断.
这是一个错误还是一个功能?
Make: javac -classpath <path to miglayout> migtest.java
Usage: java -classpath <path to miglayout> migtest <JTable|JLabel>
Run Code Online (Sandbox Code Playgroud)
注意:如果下面的代码看起来是混淆的(没有标签),我尝试了各种粘贴方法 - 我无法让预览看起来正确.让我知道我能做些什么来解决它.
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.swing.table.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableColumn;
import net.miginfocom.swing.MigLayout;
public class Migtest extends JFrame {
public final static int appWidth = 1200; // default
public final static int appHeight = 800; // default
String[] clientColNames = { "Name", "Address", …Run Code Online (Sandbox Code Playgroud)