开发者

Button inside text box

My code shows a b开发者_Python百科utton inside a textbox, but when the input value changes, the size of the text box also changes. That I don't like. Is there any solution such that the textbox size remains fixed? Or any other idea on how to create a button inside textbox? The following is my code:

JPanel panel = new JPanel();
panel.setLayout( new FlowLayout(FlowLayout.CENTER, 0, 0) );
panel.add(textField);
panel.add(button);
panel.setBackground( textField.getBackground() );
panel.setBorder( textField.getBorder() );
textField.setBorder(null);


Try a BorderLayout and add the textfield at BorderLayout.CENTER and the button at BorderLayout.EAST.


I tried your code, and it seemed to work fine for me, with a slight modification. It may be that panel is resizing itself, not textField. Try wrapping panel in another JPanel to force its shape.

JPanel panel      = new JPanel();
JPanel outerPanel = new JPanel();
panel.setLayout( new FlowLayout(FlowLayout.CENTER, 0, 0) );
panel.add(textField);
panel.add(button);
panel.setBackground( textField.getBackground() );
panel.setBorder( textField.getBorder() );
textField.setBorder(null);
outerPanel.add(panel);


Your example appears to be the second alternative discussed in the article Component Border. Instead, you may want to install() a ComponentBorder, a third alterative described later in the same article.


Is there any solution such that the textbox size remains fixed?

I'm guessing you are creating the JTextField like:

JTextField textField = new JTextField();

In this case the text field size changes as you add text to it.

Instead you should use:

JTextField textField = new JTextField(10);

and the text field will remain a constant size an hold a minimum of 10 characters before scrolling.


Use a different Layout, or try absolute positioning

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜