On 10/29/2014 3:22 PM, helpcrypto helpcrypto wrote:
AFAICT it only happens on icedtea

Do you want me to report it at oracle anyway?

     Yes. You can start the summary with the [IcedTea] prefix.

    Thanks,
    Alexandr.

Regards.

On Wed, Oct 29, 2014 at 10:33 PM, Alexander Scherbatiy <[email protected] <mailto:[email protected]>> wrote:


      Hi,

      Could you create an issue on it: http://bugreport.java.com/bugreport

      Thanks,
      Alexandr.

    On 10/27/2014 5:06 PM, helpcrypto helpcrypto wrote:

        Hi.


        I'm usually at icedtea web maillist, but this bug seems to be
        100% swing-related.

        I'm trying to display a dialog, centered on screen, which size
        is fitted to changing contents.
        AFAIK, this should be done using pack().


        Running the "attached testcase", I have noticed two things:

         - After each pack, as the BorderLayoutseem to be
        center-resized, the window moves down after each click (but
        pack always seem to work). IMHO this is not a friendly
        behaviour, but can be solved adding a
        setLocationRelativeToafter pack
         - If I add a setLocationRelativeTo(as shown below) pack fails
        from time to time and incorrectly sizes the dialog.

        Can you guys help me?
        Registered this bug a few weeks ago:
        http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1798


            package testcase;
            import java.awt.BorderLayout;
            import java.awt.event.ActionEvent;
            import java.awt.event.ActionListener;
            import java.lang.reflect.InvocationTargetException;
            import java.util.logging.Level;
            import java.util.logging.Logger;
            import javax.swing.*;
            import javax.swing.border.EmptyBorder;
            public class Testcase extends JDialog {
            private JPanel panel;
            private JLabel label;
            private JButton foo;
            private JButton bar;
            public Testcase() {
                    setTitle("Test");
                    setModal(true);
                    setResizable(false);
                    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                    foo = new JButton();
                    foo.setText("foo");
                    foo.addActionListener(new ActionListener() {
                        @Override
            public void actionPerformed(ActionEvent e) {
                            foo();
            }
            });
            foo.setVisible(true);
                    bar = new JButton();
                    bar.setText("bar");
                    bar.addActionListener(new ActionListener() {
                        @Override
            public void actionPerformed(ActionEvent e) {
                            bar();
            }
            });
            bar.setVisible(true);
                    label = new JLabel();
                    label.setBorder(new EmptyBorder(10, 10, 10, 10));
                    label.setText("a");
                    panel = new JPanel();
                    panel.setLayout(new BorderLayout());
            panel.setVisible(true);
                    panel.setBorder(new EmptyBorder(10, 10, 10, 10));
                    panel.add(foo, BorderLayout.NORTH);
                    panel.add(label, BorderLayout.CENTER);
                    panel.add(bar, BorderLayout.SOUTH);
                    getContentPane().add(panel);
                    pack();
                    //validate();
            //repaint();
                    setLocationRelativeTo(null);
            }
            public void foo(){
                            label.setText("<html>"+
"foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo"+
            "<br/>"+
"foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo"+
            "<br/>"+
"foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo"+
            "<br/>"+
"foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo"+
            "<br/>"+
"foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo"+
            "</html>");
                            pack();
                            //validate();
            //repaint();
                            setLocationRelativeTo(null);
            }
            public void bar(){
                            label.setText("<html>bar</html>");
                            pack();
                            //validate();
            //repaint();
                            setLocationRelativeTo(null);
            }
            public static void main(String[] args) {
            try {
            SwingUtilities.invokeAndWait(new Runnable() {
                            @Override
            public void run() {
            JDialog test= new Testcase();
                                test.setVisible(true);
            }
            });
            } catch (InterruptedException | InvocationTargetException
        ex) {
Logger.getLogger(Testcase.class.getName()).log(Level.SEVERE,
        null,
            ex);
            }
            }
            }




Reply via email to