excelexportdialog.java
来自「swing编写的库存管理程序。毕业设计类」· Java 代码 · 共 604 行 · 第 1/2 页
JAVA
604 行
}
/**
* Initializes the Swing components of this dialog.
*/
private void initialize()
{
final JPanel contentPane = new JPanel();
contentPane.setLayout(new GridBagLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
final JLabel lblFileName = new JLabel(getResources().getString("excelexportdialog.filename"));
final JButton btnSelect = new ActionButton(getActionSelectFile());
txFilename = new JTextField();
cbStrictLayout = new JCheckBox(getResources().getString("excelexportdialog.strict-layout"));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(lblFileName, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 0;
gbc.ipadx = 120;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(txFilename, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 1;
gbc.ipadx = 120;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(cbStrictLayout, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 2;
gbc.gridy = 0;
gbc.gridheight = 2;
contentPane.add(btnSelect, gbc);
btnCancel = new ActionButton(getActionCancel());
btnConfirm = new ActionButton(getActionConfirm());
final JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout());
buttonPanel.add(btnConfirm);
buttonPanel.add(btnCancel);
btnConfirm.setDefaultCapable(true);
getRootPane().setDefaultButton(btnConfirm);
buttonPanel.registerKeyboardAction(getActionConfirm(), KeyStroke.getKeyStroke('\n'),
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.NONE;
gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridwidth = 3;
gbc.gridy = 6;
gbc.insets = new Insets(10, 0, 0, 0);
contentPane.add(buttonPanel, gbc);
setContentPane(contentPane);
}
/**
* Returns the filename of the excel file.
*
* @return the name of the file where to save the excel file.
*/
public String getFilename()
{
return txFilename.getText();
}
/**
* Defines the filename of the excel file.
*
* @param filename the filename of the excel file
*/
public void setFilename(final String filename)
{
this.txFilename.setText(filename);
}
/**
* Gets the confirmation state of the dialog. A confirmed dialog has no invalid
* settings and the user confirmed any resource conflicts.
*
* @return true, if the dialog has been confirmed and the excel file should be saved,
* false otherwise.
*/
public boolean isConfirmed()
{
return confirmed;
}
/**
* Defines whether this dialog has been finished using the 'OK' or the 'Cancel' option.
*
* @param confirmed set to true, if OK was pressed, false otherwise
*/
protected void setConfirmed(final boolean confirmed)
{
this.confirmed = confirmed;
}
/**
* Returns the setting of the 'strict layout' check-box.
*
* @return A boolean.
*/
public boolean isStrictLayout()
{
return cbStrictLayout.isSelected();
}
/**
* Sets the 'strict-layout' check-box.
*
* @param strictLayout the new setting.
*/
public void setStrictLayout(final boolean strictLayout)
{
cbStrictLayout.setSelected(strictLayout);
}
/**
* Clears all selections and input fields.
*/
public void clear()
{
txFilename.setText("");
cbStrictLayout.setSelected(false);
}
/**
* Selects a file to use as target for the report processing.
*/
protected void performSelectFile()
{
if (fileChooser == null)
{
fileChooser = new JFileChooser();
final FilesystemFilter filter = new FilesystemFilter(".xls", "Excel Documents");
fileChooser.addChoosableFileFilter(filter);
fileChooser.setMultiSelectionEnabled(false);
}
final File file = new File(getFilename());
fileChooser.setCurrentDirectory(file);
fileChooser.setSelectedFile(file);
final int option = fileChooser.showSaveDialog(this);
if (option == JFileChooser.APPROVE_OPTION)
{
final File selFile = fileChooser.getSelectedFile();
String selFileName = selFile.getAbsolutePath();
// Test if ends on xls
if (StringUtil.endsWithIgnoreCase(selFileName, ".xls") == false)
{
selFileName = selFileName + ".xls";
}
setFilename(selFileName);
}
}
/**
* Validates the contents of the dialog's input fields. If the selected file exists, it is also
* checked for validity.
*
* @return true, if the input is valid, false otherwise
*/
public boolean performValidate()
{
final String filename = getFilename();
if (filename.trim().length() == 0)
{
JOptionPane.showMessageDialog(this,
getResources().getString("excelexportdialog.targetIsEmpty"),
getResources().getString("excelexportdialog.errorTitle"),
JOptionPane.ERROR_MESSAGE);
return false;
}
final File f = new File(filename);
if (f.exists())
{
if (f.isFile() == false)
{
JOptionPane.showMessageDialog(this,
getResources().getString("excelexportdialog.targetIsNoFile"),
getResources().getString("excelexportdialog.errorTitle"),
JOptionPane.ERROR_MESSAGE);
return false;
}
if (f.canWrite() == false)
{
JOptionPane.showMessageDialog(this,
getResources().getString(
"excelexportdialog.targetIsNotWritable"),
getResources().getString("excelexportdialog.errorTitle"),
JOptionPane.ERROR_MESSAGE);
return false;
}
final String key1 = "excelexportdialog.targetOverwriteConfirmation";
final String key2 = "excelexportdialog.targetOverwriteTitle";
if (JOptionPane.showConfirmDialog(this,
MessageFormat.format(getResources().getString(key1),
new Object[]{getFilename()}
),
getResources().getString(key2),
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE)
== JOptionPane.NO_OPTION)
{
return false;
}
}
return true;
}
/**
* Opens the dialog to query all necessary input from the user.
* This will not start the processing, as this is done elsewhere.
*
* @param report the report that should be processed.
* @return true, if the processing should continue, false otherwise.
*/
public boolean performQueryForExport(final JFreeReport report)
{
setModal(true);
initFromConfiguration(report.getReportConfiguration());
setVisible(true);
if (isConfirmed() == false)
{
return false;
}
storeToConfiguration(report.getReportConfiguration());
return true;
}
/**
* Initialises the Excel export dialog from the settings in the report configuration.
*
* @param config the report configuration.
*/
public void initFromConfiguration(final ReportConfiguration config)
{
final String strict = config.getConfigProperty
(ExcelProcessor.CONFIGURATION_PREFIX +
ExcelProcessor.STRICT_LAYOUT,
config.getConfigProperty(TableProcessor.STRICT_TABLE_LAYOUT,
TableProcessor.STRICT_TABLE_LAYOUT_DEFAULT));
setStrictLayout(strict.equals("true"));
}
/**
* Stores the input from the dialog into the report configuration of the
* report.
*
* @param config the report configuration that should receive the new
* settings.
*/
public void storeToConfiguration(final ReportConfiguration config)
{
config.setConfigProperty(ExcelProcessor.CONFIGURATION_PREFIX +
ExcelProcessor.STRICT_LAYOUT, String.valueOf(isStrictLayout()));
}
/**
* For debugging.
*
* @param args ignored.
*/
public static void main(final String[] args)
{
final JDialog d = new ExcelExportDialog();
d.pack();
d.addWindowListener(new WindowAdapter()
{
/**
* Invoked when a window is in the process of being closed.
* The close operation can be overridden at this point.
*/
public void windowClosing(final WindowEvent e)
{
System.exit(0);
}
});
d.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?