/*
* This file is part of the LibreOffice project .
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http : //mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice :
*
* Licensed to the Apache Software Foundation ( ASF ) under one or more
* contributor license agreements . See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership . The ASF licenses this file to you under the Apache
* License , Version 2 . 0 ( the " License " ) ; you may not use this file
* except in compliance with the License . You may obtain a copy of
* the License at http : //www.apache.org/licenses/LICENSE-2.0 .
*/
package org.libreoffice.example.java_scripts;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class StatusWindow extends JFrame {
private JProgressBar progressBar = null ;
private JTextField statusLabel = null ;
private JButton cancelButton = null ;
private JFrame statusWindow = null ;
private PostNewsgroup mainWindow = null ;
private final int MAXPROGRESS = 13 ;
private final int MINPROGRESS = 0 ;
public StatusWindow(PostNewsgroup mw, String title, int parentX, int parentY) {
this .setTitle(title);
this .setLocation(parentX + 100 , parentY + 100 );
statusWindow = this ;
mainWindow = mw;
mainWindow.enableButtons(false );
statusWindow.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
mainWindow.enableButtons(true );
}
});
progressBar = new JProgressBar();
progressBar.setStringPainted(true );
progressBar.setMaximum(MAXPROGRESS);
progressBar.setMinimum(MINPROGRESS);
progressBar.setSize(30 , 400 );
JLabel progLabel = new JLabel("Progress:" );
JPanel progressPanel = new JPanel();
progressPanel.setLayout(new BorderLayout(10 , 0 ));
progressPanel.add(progLabel, "West" );
progressPanel.add(progressBar, "East" );
statusLabel = new JTextField();
statusLabel.setColumns(25 );
statusLabel.setEditable(false );
statusLabel.setBorder(null );
JPanel statusPanel = new JPanel();
statusPanel.setLayout(new BorderLayout());
statusPanel.add(statusLabel, "West" );
cancelButton = new JButton("Cancel" );
cancelButton.setSize(30 , 100 );
cancelButton.setEnabled(false );
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
// cancelling actions
mainWindow.enableButtons(true );
statusWindow.dispose();
}
});
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BorderLayout(0 , 5 ));
buttonPanel.add(cancelButton, "East" );
buttonPanel.add(new JSeparator(SwingConstants.HORIZONTAL), "North" );
Container container = getContentPane();
container.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.gridx = 0 ;
constraints.gridy = 0 ;
constraints.gridwidth = 1 ;
constraints.gridheight = 1 ;
constraints.insets = new Insets(15 , 15 , 10 , 15 );
container.add(progressPanel, constraints);
constraints.gridx = 0 ;
constraints.gridy = 1 ;
constraints.gridwidth = 1 ;
constraints.gridheight = 1 ;
constraints.insets = new Insets(10 , 15 , 10 , 15 );
container.add(statusPanel, constraints);
constraints.gridx = 0 ;
constraints.gridy = 2 ;
constraints.gridwidth = 1 ;
constraints.gridheight = 1 ;
constraints.insets = new Insets(10 , 15 , 5 , 15 );
container.add(buttonPanel, constraints);
this .pack();
this .setResizable(false );
}
public void setStatus(int progress, String status) {
progressBar.setValue(progress);
statusLabel.setText(status);
statusLabel.setToolTipText(status);
if (progress == MAXPROGRESS) {
cancelButton.setEnabled(true );
cancelButton.setText("Close" );
}
update(getGraphics());
mainWindow.update(mainWindow.getGraphics());
}
public void enableCancelButton(boolean enable) {
if (enable) {
cancelButton.setEnabled(true );
cancelButton.setText("Finish" );
} else {
cancelButton.setEnabled(false );
cancelButton.setText("Cancel" );
}
}
}
Messung V0.5 in Prozent C=93 H=94 G=93
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-10-11)
¤
*© Formatika GbR, Deutschland