I have this Java JFrame
class, in which I want to use a boxlayout, but I get an error saying java.awt.AWTError: BoxLayout can't be shared
. I've seen others with this problem, but they solved it by creating the boxlayout on the contentpane, but that is what I'm doing here. Here's my code:
class EditDialog extends JFrame {
JTextField title = new JTextField();
public editDialog() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setTitle("New entity");
getContentPane().setLayout(
new BoxLayout(this, BoxLayout.PAGE_AXIS));
add(title);
pack();
setVisible(true);
}
}
Your problem is that you're creating a BoxLayout
for a JFrame
(this
), but setting it as the layout for a JPanel
(getContentPane()
). Try:
getContentPane().setLayout(
new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS)
);