List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout)
From source file:jgnash.ui.report.compiled.IncomeExpensePieChart.java
License:Open Source License
private JPanel createPanel() { EnumSet<AccountType> set = EnumSet.of(AccountType.INCOME, AccountType.EXPENSE); JButton refreshButton = new JButton(rb.getString("Button.Refresh")); startField = new DatePanel(); endField = new DatePanel(); showEmptyCheck = new JCheckBox(rb.getString("Label.ShowEmptyAccounts")); showPercentCheck = new JCheckBox(rb.getString("Label.ShowPercentValues")); combo = AccountListComboBox//from w ww .j a v a 2s.c o m .getParentTypeInstance(EngineFactory.getEngine(EngineFactory.DEFAULT).getRootAccount(), set); Date dStart = DateUtils.subtractYear(DateUtils.getFirstDayOfTheMonth(new Date())); long start = pref.getLong(STARTDATE, dStart.getTime()); startField.setDate(new Date(start)); currentAccount = combo.getSelectedAccount(); JFreeChart chart = createPieChart(currentAccount); chartPanel = new ChartPanel(chart, true, true, true, false, true); // (chart, properties, save, print, zoom, tooltips) FormLayout layout = new FormLayout("p, 4dlu, 70dlu, 8dlu, p, 4dlu, 70dlu, 8dlu, p, 4dlu:g, left:p", "f:d, 3dlu, f:d, 6dlu, f:p:g"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); layout.setRowGroups(new int[][] { { 1, 3 } }); builder.append(combo, 9); builder.append(showEmptyCheck); builder.nextLine(); builder.nextLine(); builder.append(rb.getString("Label.StartDate"), startField); builder.append(rb.getString("Label.EndDate"), endField); builder.append(refreshButton); builder.append(showPercentCheck); builder.nextLine(); builder.nextLine(); builder.append(chartPanel, 11); JPanel panel = builder.getPanel(); combo.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setCurrentAccount(combo.getSelectedAccount()); pref.putLong(STARTDATE, startField.getDate().getTime()); } }); refreshButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setCurrentAccount(currentAccount); pref.putLong(STARTDATE, startField.getDate().getTime()); } }); showEmptyCheck.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setCurrentAccount(currentAccount); } }); showPercentCheck.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { ((PiePlot) chartPanel.getChart().getPlot()) .setLabelGenerator(showPercentCheck.isSelected() ? percentLabels : defaultLabels); } }); ChartMouseListener mouseListener = new ChartMouseListener() { @Override public void chartMouseClicked(final ChartMouseEvent event) { MouseEvent me = event.getTrigger(); if (me.getID() == MouseEvent.MOUSE_CLICKED && me.getClickCount() == 1) { try { ChartEntity entity = event.getEntity(); // expand sections if interesting, back out if in nothing if (entity instanceof PieSectionEntity) { Account a = (Account) ((PieSectionEntity) entity).getSectionKey(); if (a.getChildCount() > 0) { setCurrentAccount(a); } } else if (entity == null) { Account parent = currentAccount; if (parent == null) { return; } parent = parent.getParent(); if (parent == null || parent instanceof RootAccount) { return; } setCurrentAccount(parent); } } catch (Exception ex) { System.err.println(ex); } } } @Override public void chartMouseMoved(ChartMouseEvent event) { setChartCursor(chartPanel, event.getEntity(), event.getTrigger().getPoint()); } }; chartPanel.addChartMouseListener(mouseListener); return panel; }
From source file:jgnash.ui.report.compiled.MonthBalanceCSV.java
License:Open Source License
private Date[] getDates() { Date[] dates;/*w w w. jav a 2 s .co m*/ DatePanel startField = new DatePanel(); DatePanel endField = new DatePanel(); ButtonGroup group = new ButtonGroup(); JRadioButton vert = new JRadioButton(rb.getString("Button.Vertical")); JRadioButton horiz = new JRadioButton(rb.getString("Button.Horizontal")); group.add(vert); group.add(horiz); vert.setSelected(true); FormLayout layout = new FormLayout("right:p, 4dlu, p:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setRowGroupingEnabled(true); builder.append(rb.getString("Label.StartDate"), startField); builder.append(rb.getString("Label.EndDate"), endField); builder.append(rb.getString("Label.Layout"), vert); builder.append("", horiz); builder.nextLine(); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); JPanel panel = builder.getPanel(); int option = JOptionPane.showConfirmDialog(null, new Object[] { panel }, rb.getString("Message.StartEndDate"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if (option == JOptionPane.OK_OPTION) { dates = getLastDays(startField.getDate(), endField.getDate()); } else { dates = null; } vertical = vert.isSelected(); return dates; }
From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChart.java
License:Open Source License
private JPanel createPanel() { Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate()); Date start = DateUtils.subtractYear(end); startDateField.setDate(start);//from w w w . j a v a 2s . c o m JButton refreshButton = new JButton(rb.getString("Button.Refresh")); refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png")); subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts")); subAccountCheckBox.setSelected(true); hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount")); hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount")); Account a = combo.getSelectedAccount(); JFreeChart chart = createVerticalXYBarChart(a); final ChartPanel chartPanel = new ChartPanel(chart); FormLayout layout = new FormLayout("p, 4dlu, p:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", ""); DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout); dBuilder.append(rb.getString("Label.StartDate"), startDateField); dBuilder.append(rb.getString("Label.EndDate"), endDateField); dBuilder.append(refreshButton); FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", ""); DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout); cbBuilder.append(subAccountCheckBox); cbBuilder.append(hideLockedAccountCheckBox); cbBuilder.append(hidePlaceholderAccountCheckBox); builder.append(rb.getString("Label.Account"), combo); builder.nextLine(); builder.append(" "); builder.append(cbBuilder.getPanel()); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(dBuilder.getPanel(), 3); builder.nextLine(); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("fill:p:g")); builder.append(chartPanel, 3); final JPanel panel = builder.getPanel(); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Account account = combo.getSelectedAccount(); if (account == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }; combo.addActionListener(listener); hideLockedAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo.setHideLocked(hideLockedAccountCheckBox.isSelected()); try { Account account = combo.getSelectedAccount(); if (account == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }); hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected()); try { Account account = combo.getSelectedAccount(); if (account == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }); refreshButton.addActionListener(listener); updateSubAccountBox(); return panel; }
From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChartCompare.java
License:Open Source License
private JPanel createPanel() { Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate()); Date start = DateUtils.subtractYear(end); startDateField.setDate(start);//from www .j a va 2 s. c o m JButton refreshButton = new JButton(rb.getString("Button.Refresh")); refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png")); subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts")); subAccountCheckBox.setSelected(true); hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount")); hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount")); jcb_compare = new JCheckBox(rb.getString("Button.Compare")); jcb_compare.setSelected(true); Account a = combo1.getSelectedAccount(); Account a2 = combo2.getSelectedAccount(); JFreeChart chart = createVerticalXYBarChart(a, a2); final ChartPanel chartPanel = new ChartPanel(chart); FormLayout layout = new FormLayout("p, 4dlu, p:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", ""); DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout); dBuilder.append(rb.getString("Label.StartDate"), startDateField); dBuilder.append(rb.getString("Label.EndDate"), endDateField); dBuilder.append(refreshButton); FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", ""); DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout); cbBuilder.append(subAccountCheckBox); cbBuilder.append(hideLockedAccountCheckBox); cbBuilder.append(hidePlaceholderAccountCheckBox); builder.append(rb.getString("Label.Account"), combo1); builder.nextLine(); builder.append(rb.getString("Label.Compare"), combo2); builder.nextLine(); builder.append(jcb_compare); builder.append(cbBuilder.getPanel()); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(dBuilder.getPanel(), 3); builder.nextLine(); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("fill:p:g")); builder.append(chartPanel, 3); final JPanel panel = builder.getPanel(); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { if (e.getSource() == jcb_compare) { combo2.setEnabled(jcb_compare.isSelected()); } Account account = combo1.getSelectedAccount(); if (account == null) { return; } Account account2 = combo2.getSelectedAccount(); if (jcb_compare.isSelected() && account2 == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account, account2)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }; combo1.addActionListener(listener); combo2.addActionListener(listener); jcb_compare.addActionListener(listener); subAccountCheckBox.addActionListener(listener); hideLockedAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo1.setHideLocked(hideLockedAccountCheckBox.isSelected()); combo2.setHideLocked(hideLockedAccountCheckBox.isSelected()); try { Account account = combo1.getSelectedAccount(); if (account == null) { return; } Account account2 = combo2.getSelectedAccount(); if (jcb_compare.isSelected() && account2 == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account, account2)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }); hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo1.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected()); combo2.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected()); try { Account account = combo1.getSelectedAccount(); if (account == null) { return; } Account account2 = combo2.getSelectedAccount(); if (jcb_compare.isSelected() && account2 == null) { return; } updateSubAccountBox(); chartPanel.setChart(createVerticalXYBarChart(account, account2)); panel.validate(); } catch (Exception ex) { System.out.println(ex); } } }); refreshButton.addActionListener(listener); updateSubAccountBox(); return panel; }
From source file:jgnash.ui.report.compiled.PayeePieChart.java
License:Open Source License
private JPanel createPanel() { JButton refreshButton = new JButton(rb.getString("Button.Refresh")); JButton addFilterButton = new JButton(rb.getString("Button.AddFilter")); final JButton saveButton = new JButton(rb.getString("Button.SaveFilters")); JButton deleteFilterButton = new JButton(rb.getString("Button.DeleteFilter")); JButton clearPrefButton = new JButton(rb.getString("Button.MasterDelete")); filterCombo = new JComboBox<>(); startField = new DatePanel(); endField = new DatePanel(); txtAddFilter = new TextField(); filterList = new ArrayList<>(); filtersChanged = false;//from w w w . j av a 2 s .c om useFilters = new JCheckBox(rb.getString("Label.UseFilters")); useFilters.setSelected(true); showPercentCheck = new JCheckBox(rb.getString("Label.ShowPercentValues")); combo = AccountListComboBox.getFullInstance(); Date dStart = DateUtils.subtractYear(DateUtils.getFirstDayOfTheMonth(new Date())); long start = pref.getLong(STARTDATE, dStart.getTime()); startField.setDate(new Date(start)); currentAccount = combo.getSelectedAccount(); JFreeChart chart = createPieChart(currentAccount); chartPanel = new ChartPanel(chart, true, true, true, false, true); // (chart, properties, save, print, zoom, tooltips) FormLayout layout = new FormLayout("p, 4dlu, 70dlu, 8dlu, p, 4dlu, 70dlu, 8dlu, p, 4dlu:g, left:p", "f:d, 3dlu, f:d, 6dlu, f:p:g"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); layout.setRowGroups(new int[][] { { 1, 3 } }); builder.append(combo, 9); builder.append(useFilters); builder.nextLine(); builder.nextLine(); builder.append(rb.getString("Label.StartDate"), startField); builder.append(rb.getString("Label.EndDate"), endField); builder.append(refreshButton); builder.append(showPercentCheck); builder.nextLine(); builder.nextLine(); builder.append(chartPanel, 11); builder.nextLine(); builder.append(txtAddFilter, 3); builder.append(addFilterButton, 3); builder.append(saveButton); builder.nextLine(); builder.append(filterCombo, 3); builder.append(deleteFilterButton, 3); builder.append(clearPrefButton); builder.nextLine(); JPanel panel = builder.getPanel(); combo.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { Account newAccount = combo.getSelectedAccount(); if (filtersChanged) { int result = JOptionPane.showConfirmDialog(null, rb.getString("Message.SaveFilters"), "Warning", JOptionPane.YES_NO_OPTION); if (result == JOptionPane.YES_OPTION) { saveButton.doClick(); } } filtersChanged = false; String[] list = POUND_DELIMITER_PATTERN.split(pref.get(FILTERTAG + newAccount.hashCode(), "")); filterList.clear(); for (String filter : list) { if (filter.length() > 0) { //System.out.println("Adding filter: #" + filter + "#"); filterList.add(filter); } } refreshFilters(); setCurrentAccount(newAccount); pref.putLong(STARTDATE, startField.getDate().getTime()); } }); refreshButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setCurrentAccount(currentAccount); pref.putLong(STARTDATE, startField.getDate().getTime()); } }); clearPrefButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { int result = JOptionPane.showConfirmDialog(null, rb.getString("Message.MasterDelete"), "Warning", JOptionPane.YES_NO_OPTION); if (result == JOptionPane.YES_OPTION) { try { pref.clear(); } catch (Exception ex) { System.out.println("Exception clearing preferences" + ex); } } } }); saveButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { StringBuilder sb = new StringBuilder(); for (String filter : filterList) { sb.append(filter); sb.append('#'); } //System.out.println("Save = " + FILTERTAG + currentAccount.hashCode() + " = " + sb.toString()); pref.put(FILTERTAG + currentAccount.hashCode(), sb.toString()); filtersChanged = false; } }); addFilterButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { String newFilter = txtAddFilter.getText(); filterList.remove(newFilter); if (newFilter.length() > 0) { filterList.add(newFilter); filtersChanged = true; txtAddFilter.setText(""); } refreshFilters(); } }); deleteFilterButton.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { if (filterList.size() > 0) { String filter = (String) filterCombo.getSelectedItem(); filterList.remove(filter); filtersChanged = true; } refreshFilters(); } }); useFilters.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setCurrentAccount(currentAccount); } }); showPercentCheck.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { ((PiePlot) chartPanel.getChart().getPlot()) .setLabelGenerator(showPercentCheck.isSelected() ? percentLabels : defaultLabels); } }); return panel; }
From source file:jgnash.ui.report.compiled.PortfolioReport.java
License:Open Source License
/** * Creates a report control panel. May return null if a panel is not used * The ReportController is responsible for dynamic report options with the exception * of page format options//from www .ja va 2 s . c om * * @return control panel */ @Override public JPanel getReportController() { FormLayout layout = new FormLayout("p, $lcgap, p:g, 8dlu, p", "f:d, $lgap, f:d"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.append(rb.getString("Label.Account"), accountCombo); builder.append(refreshButton); builder.nextLine(); builder.nextLine(); builder.append(buildOptionPanel(), 5); layout.addGroupedRow(1); layout.addGroupedRow(3); return builder.getPanel(); }
From source file:jgnash.ui.report.compiled.PortfolioReport.java
License:Open Source License
private JPanel buildOptionPanel() { FormLayout layout = new FormLayout("p, 8dlu, p", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.append(subAccountCheckBox);//from ww w . j a v a2s . c om builder.append(verboseCheckBox); return builder.getPanel(); }
From source file:jgnash.ui.report.compiled.ProfitLossTXT.java
License:Open Source License
Date[] getDates() { Date start = new Date(); start = DateUtils.subtractYear(start); JDateField startField = new JDateField(); JDateField endField = new JDateField(); startField.setValue(start);//from w w w .ja v a 2 s. c o m FormLayout layout = new FormLayout("right:p, 4dlu, p:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setRowGroupingEnabled(true); builder.append(rb.getString("Label.StartDate"), startField); builder.append(rb.getString("Label.EndDate"), endField); builder.nextLine(); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); JPanel panel = builder.getPanel(); int option = JOptionPane.showConfirmDialog(null, new Object[] { panel }, rb.getString("Message.StartEndDate"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if (option == JOptionPane.OK_OPTION) { return getLastDays(startField.dateValue(), endField.dateValue()); } return null; }
From source file:jgnash.ui.report.compiled.RunningAccountBalanceChart.java
License:Open Source License
private JPanel createPanel() { Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate()); Date start = DateUtils.subtractYear(end); startDateField.setDate(start);//from w w w.j a v a2s. c om JButton refreshButton = new JButton(rb.getString("Button.Refresh")); refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png")); subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts")); subAccountCheckBox.setSelected(true); hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount")); hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount")); JFreeChart chart = createVerticalXYBarChart(combo.getSelectedAccount()); final ChartPanel chartPanel = new ChartPanel(chart); FormLayout layout = new FormLayout("p, 4dlu, p:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", ""); DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout); dBuilder.append(rb.getString("Label.StartDate"), startDateField); dBuilder.append(rb.getString("Label.EndDate"), endDateField); dBuilder.append(refreshButton); FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", ""); DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout); cbBuilder.append(subAccountCheckBox); cbBuilder.append(hideLockedAccountCheckBox); cbBuilder.append(hidePlaceholderAccountCheckBox); builder.append(rb.getString("Label.Account"), combo); builder.nextLine(); builder.append(" "); builder.append(cbBuilder.getPanel()); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(dBuilder.getPanel(), 3); builder.nextLine(); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("fill:p:g")); builder.append(chartPanel, 3); final JPanel panel = builder.getPanel(); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateSubAccountBox(); Account a = combo.getSelectedAccount(); if (a == null) { return; } chartPanel.setChart(createVerticalXYBarChart(a)); panel.validate(); } }; hideLockedAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo.setHideLocked(hideLockedAccountCheckBox.isSelected()); updateSubAccountBox(); Account a = combo.getSelectedAccount(); if (a == null) { return; } chartPanel.setChart(createVerticalXYBarChart(a)); panel.validate(); } }); hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { combo.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected()); updateSubAccountBox(); Account a = combo.getSelectedAccount(); if (a == null) { return; } chartPanel.setChart(createVerticalXYBarChart(a)); panel.validate(); } }); updateSubAccountBox(); combo.addActionListener(listener); refreshButton.addActionListener(listener); return panel; }
From source file:jgnash.ui.report.compiled.SecurityHighLowChart.java
License:Open Source License
JPanel createPanel() { combo = new SecurityComboBox(); // create an empty chart for panel construction chartPanel = new ChartPanel(new JFreeChart(new XYPlot())); FormLayout layout = new FormLayout("p, 4dlu:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.append(combo);/*from w w w. j a v a2 s . c o m*/ builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("fill:p:g")); builder.append(chartPanel, 2); combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateChart(); } }); return builder.getPanel(); }