rt

解决方案 »

  1.   

    能否再具体一点?什么样的情况可以被视为“完整显示”?
    如果只是简单的期望知道是否显示,可以使用xxx.isVisible(),来确定其是否被显示。
      

  2.   

    谢谢楼上的回复,比如说,有一个JTable有1000行,JTable里的每一个cell都放着一个JTextField,但是屏幕上只能显示前100行,当我遍历所有的放在JTable里的JTextField,如何判断这个JTextField已经显示在了屏幕上(所有的JTextField的isVisible属性都是true)
      

  3.   

    组件重叠是一种不完整的显示
    isOptimizedDrawingEnabled() // 如果此组件平铺显示其子组件(也就是它可保证子组件不重叠),则返回 true
      

  4.   

    我主要是想解决下面的问题,你运行一下下面的程序,然后点击十几次"add Button"按钮,就会出现无法显示后面的按钮的情况,为什么BoxLayout不能自动换行呢?如何让Layout有自动换行显示控件?import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class TabbedPaneTest extends JFrame { public TabbedPaneTest() {
    Container cp = getContentPane();
    cp.setLayout(new BorderLayout()); final JPanel tabbedPane = new JPanel();
    tabbedPane.setLayout(new BoxLayout(tabbedPane, BoxLayout.X_AXIS));
    cp.add(tabbedPane,BorderLayout.CENTER); Button addBtn = new Button("add Button");
    addBtn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    tabbedPane.add(new JButton("test"));
    tabbedPane.updateUI();
    tabbedPane.repaint();
    }
    });
    cp.add(addBtn,BorderLayout.SOUTH);

    init(500, 200);
    } public static void main(String[] args) {
    new TabbedPaneTest();
    } private void setDefault() {
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setLocation((screenSize.width - getWidth()) / 2,
    (screenSize.height - getHeight()) / 2);
    setVisible(true); } public void init(int width, int height) {
    setSize(width, height);
    setDefault();
    addDefaultListener();
    } private void addDefaultListener() {
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    dispose();
    }
    });
    }}
      

  5.   

    BoxLayout不具备自动换行功能,用FlowLayout吧