0

I'm trying to set the border of a JPanel by using a child textfield. I've tried using getParent(), but the option for setting the border does't exist. What is the reason for this?

James F
  • 130
  • 1
  • 10
  • Why not ensure that the action listener has a reference to the panel? BTW - what form is the information on the border, in the text field? If it is a number (for example) that is used in the constructor of an `EmptyBorder`, it would probably be more user friendly to have a `JSpinner` with a `SpinnerNumberModel` as shown in [this answer](http://stackoverflow.com/a/17874718/418556). – Andrew Thompson Mar 28 '18 at 05:29

1 Answers1

1

The getParent() method returns a Container object.

The setBorder(...) method is only defined for JComponent objects.

So you need to cast the parent Container to a JPanel. Something like:

Container parent = textField.getParent();
JPanel panel = (JPanel)parent;
panel.setBorder( new LineBorder(Color.RED) );
camickr
  • 321,443
  • 19
  • 166
  • 288