java - How to resize JPanel when JFrame is maximized? -
i new java swing, try create swing app format text. when click maximum button, text panel's length not resize, , middle panel takes large space.
and seems setresizable(false)
not work
code
public class mainframe extends jframe { private static final long serialversionuid = 7553142908344084288l; private jtextarea fromtextarea; private jtextarea totextarea; public mainframe() { super("jformatter"); panel mainpanel = new panel(); mainpanel.setlayout(new boxlayout(mainpanel, boxlayout.x_axis)); setcontentpane(mainpanel); fromtextarea = createtextarea(); lines.setborder(borderfactory.creatematteborder(0, 1, 0, 1, color.light_gray)); lines.seteditable(false); font f = new font(font.sans_serif, font.plain, 16); lines.setfont(f); jscrollpane fromtextareascrollpanel = new jscrollpane(fromtextarea); fromtextareascrollpanel.setborder(borderfactory.createemptyborder(15, 5, 15, 5)); fromtextareascrollpanel.getviewport().add(fromtextarea); fromtextareascrollpanel.setrowheaderview(lines); mainpanel.add(fromtextareascrollpanel); // control panel mainpanel.add(createctrlpanel()); totextarea = createtextarea(); mainpanel.add(createtextareapanel(totextarea)); setdefaultcloseoperation(exit_on_close); pack(); setresizable(false); setvisible(true); setlocationrelativeto(null); } private jpanel createctrlpanel() { final jcombobox jcombobox = new jcombobox(formatters.keyset().toarray()); jcombobox.setborder(borderfactory.createtitledborder("text format")); jbutton fmtbutton = new jbutton("format >>"); jpanel ctrpanel = new jpanel(new gridbaglayout()); ctrpanel.setborder(borderfactory.createemptyborder(0, 5, 0, 5)); gridbagconstraints gbc = new gridbagconstraints(); gbc.gridwidth = gridbagconstraints.remainder; gbc.fill = gridbagconstraints.horizontal; ctrpanel.add(jcombobox, gbc); ctrpanel.add(box.createrigidarea(new dimension(50, 15)), gbc); //gbc.fill = gridbagconstraints.none; ctrpanel.add(fmtbutton, gbc); return ctrpanel; } private jscrollpane createtextareapanel(jtextarea textarea) { jscrollpane fromtextareascrollpanel = new jscrollpane(textarea); //fromtextareascrollpanel.setpreferredsize(new dimension(300, 300)); fromtextareascrollpanel.setborder(borderfactory.createemptyborder(15, 5, 15, 5)); return fromtextareascrollpanel; } private jtextarea createtextarea() { jtextarea textarea = new jtextarea(20, 40); font f = new font(font.sans_serif, font.plain, 16); textarea.setfont(f); //fromtextarea.setlinewrap(true); //textarea.setbackground(color.light_gray); textarea.setmargin(new insets(0, 10, 0, 10)); return textarea; } public static void main(string[] args) { new mainframe(); } }
result:
try make layout this:
code:
import java.awt.eventqueue; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.insets; import javax.swing.jbutton; import javax.swing.jcombobox; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtextarea; import javax.swing.border.emptyborder; public class test extends jframe { private jpanel contentpane; /** * launch application. */ public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { try { test frame = new test(); frame.setvisible(true); } catch (exception e) { e.printstacktrace(); } } }); } /** * create frame. */ public test() { setdefaultcloseoperation(jframe.exit_on_close); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5)); setcontentpane(contentpane); gridbaglayout gbl_contentpane = new gridbaglayout(); gbl_contentpane.columnwidths = new int[]{0, 0, 0, 0}; gbl_contentpane.rowheights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; gbl_contentpane.columnweights = new double[]{0.0, 0.0, 1.0, double.min_value}; gbl_contentpane.rowweights = new double[]{1.0, 0.0, double.min_value}; contentpane.setlayout(gbl_contentpane); jscrollpane scrollpane = new jscrollpane(); gridbagconstraints gbc_scrollpane = new gridbagconstraints(); gbc_scrollpane.gridheight = 2; gbc_scrollpane.insets = new insets(0, 0, 0, 5); gbc_scrollpane.fill = gridbagconstraints.both; gbc_scrollpane.gridx = 0; gbc_scrollpane.gridy = 0; gbc_scrollpane.weightx=1; contentpane.add(scrollpane, gbc_scrollpane); jtextarea textarea = new jtextarea(); scrollpane.setviewportview(textarea); jpanel panel = new jpanel(); gridbagconstraints gbc_panel = new gridbagconstraints(); gbc_panel.gridheight = 2; gbc_panel.insets = new insets(0, 0, 5, 5); //gbc_panel.fill = gridbagconstraints.both; gbc_panel.gridx = 1; gbc_panel.gridy = 0; contentpane.add(panel, gbc_panel); gridbaglayout gbl_panel = new gridbaglayout(); gbl_panel.columnwidths = new int[]{0, 0, 0, 0}; gbl_panel.rowheights = new int[]{0, 0, 0, 0, 0, 0}; gbl_panel.columnweights = new double[]{0.0, 0.0, 1.0, double.min_value}; gbl_panel.rowweights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, double.min_value}; panel.setlayout(gbl_panel); jcombobox combobox = new jcombobox(); gridbagconstraints gbc_combobox = new gridbagconstraints(); gbc_combobox.insets = new insets(0, 0, 5, 0); gbc_combobox.fill = gridbagconstraints.horizontal; gbc_combobox.gridx = 2; gbc_combobox.gridy = 0; gbc_combobox.weightx=0.0; panel.add(combobox, gbc_combobox); jbutton btnnewbutton = new jbutton(">>"); gridbagconstraints gbc_btnnewbutton = new gridbagconstraints(); gbc_btnnewbutton.insets = new insets(0, 0, 5, 0); gbc_btnnewbutton.gridx = 2; gbc_btnnewbutton.gridy = 1; panel.add(btnnewbutton, gbc_btnnewbutton); jscrollpane scrollpane_1 = new jscrollpane(); gridbagconstraints gbc_scrollpane_1 = new gridbagconstraints(); gbc_scrollpane_1.gridheight = 2; gbc_scrollpane_1.fill = gridbagconstraints.both; gbc_scrollpane_1.gridx = 2; gbc_scrollpane_1.gridy = 0; gbc_scrollpane_1.weightx=1; contentpane.add(scrollpane_1, gbc_scrollpane_1); jtextarea textarea_1 = new jtextarea(); scrollpane_1.setviewportview(textarea_1); pack(); } }
Comments
Post a Comment