Я создаю приложение Java и хочу иметь панель в нижней части приложения, в котором я показываю текстовую панель и строку состояния (прогресс).
Только я не могу найти элемент управления в NetBeans и не знаю, как создать код вручную.
Я создаю приложение Java и хочу иметь панель в нижней части приложения, в котором я показываю текстовую панель и строку состояния (прогресс).
Только я не могу найти элемент управления в NetBeans и не знаю, как создать код вручную.
Создайте JFrame или JPanel с BorderLayout, дайте ему что-то вроде BevelBorder или границы строки, чтобы он отделился от остальных содержимого, а затем добавить панель состояния в BorderLayout.SOUTH.
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setSize(200, 200);
// create the status bar panel and shove it down the bottom of the frame
JPanel statusPanel = new JPanel();
statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
frame.add(statusPanel, BorderLayout.SOUTH);
statusPanel.setPreferredSize(new Dimension(frame.getWidth(), 16));
statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.X_AXIS));
JLabel statusLabel = new JLabel("status");
statusLabel.setHorizontalAlignment(SwingConstants.LEFT);
statusPanel.add(statusLabel);
frame.setVisible(true);
Вот результат приведенного выше кода состояния на моей машине:
К сожалению, Swing не имеет встроенной поддержки StatusBars.
Вы можете использовать BorderLayout
и ярлык или все, что вам нужно отобразить внизу:
public class StatusBar extends JLabel {
/** Creates a new instance of StatusBar */
public StatusBar() {
super();
super.setPreferredSize(new Dimension(100, 16));
setMessage("Ready");
}
public void setMessage(String message) {
setText(" "+message);
}
}
Затем на главной панели:
statusBar = new StatusBar();
getContentPane().add(statusBar, java.awt.BorderLayout.SOUTH);
От: http://www.java-tips.org/java-se-tips/javax.swing/creating-a-status-bar.html
Я использовал библиотеку swing из L2FProd. Библиотека строки состояния, которую они предоставили, очень хороша.
Ниже вы узнаете, как использовать его:
Строка состояния внутренне делит зону панели на зону. Каждая зона может содержать компонент (JLabel, JButton и т.д.). Идея состоит в том, чтобы заполнить панель необходимыми зонами и компонентами.
Создайте строку состояния, как показано ниже.
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import com.l2fprod.common.swing.StatusBar;
StatusBar statusBar = new StatusBar();
statusBar.setZoneBorder(BorderFactory.createLineBorder(Color.GRAY));
statusBar.setZones(
new String[] { "first_zone", "second_zone", "remaining_zones" },
new Component[] {
new JLabel("first"),
new JLabel("second"),
new JLabel("remaining")
},
new String[] {"25%", "25%", "*"}
);
Теперь добавьте выше statusBar
к основной панели, которую у вас есть (BorderLayout и установите ее на южную сторону).
См. пример скриншота из одного из приложений, над которыми я работаю здесь (он имеет 2 зоны). Дайте мне знать, если вы столкнетесь с какими-либо проблемами....
Я бы рекомендовал компонент строки состояния в SwingX library - Вот документ API для строка состояния здесь
Хороший пример его использования здесь.
Удачи.