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);
}
}
}