Опытный
 
Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany
Репутация: нет Всего: 1
|
Гляньте пож, что за глюк. Я закину весь код, но наверное его смотреть не оч обязательно. Смотреть функцию antwPanel(). Прикрепляю рисунок, чтоб было наглядней, что не в порядке. И почему у меня появилось 2 полосы прокрутки? И почему они корректно не работают? Спасибо. Код | import java.awt.BorderLayout; import java.awt.Color; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridLayout;
import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JTextPane; import javax.swing.ScrollPaneConstants; import javax.swing.SpringLayout; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.BevelBorder; import javax.swing.border.EtchedBorder; import javax.swing.border.LineBorder;
public class CopyOfV_TestWin extends JFrame {
private JPanel window_panel = new JPanel();
private JPanel left_panel = new JPanel();
private JPanel content_panel = new JPanel();
private final String autoren = "@autoren: ";
private final String frageText = "\nDatenfelder, die mit dem Schlüsselwort static deklariert werden, heißen Klassenvariable. \n Sie existieren pro Klasse genau einmal (unabhängig von der Zahl der kreierten Instanzen) und alle Objekte dieser Klasse können auf sie zugreifen.\n"
+ "Ein Datenfeld, welches ohne das Schlüsselwort static deklariert wird, ist eine sogenannte Instanzvariable. Eine Instanzvariable \n existiert je Instanz (also je Objekt) genau einmal und kann entsprechend für jede Instanz einen anderen Wert\n annehmen. Eine Instanzvariable stellt sozusagen eine Eigenschaft eines Objektes dar.\n"
+ "Hinweis: Variablen, die innerhalb einer Methode deklariert werden, bezeichnet man als lokale Variablen.\n"
+ "Die Sichtbarkeit von (Instanz- und Klassen-) Variablen und Methoden wird mit Hilfe von Modifiern geregelt. \n Ist ein Element einer Klasse mit \n keinem der Schlüsselworte public, private oder protected deklariert, dann ist es nur innerhalb von Klassen desselben Pakets sichtbar.\n"
+ "Unter einem Paket versteht man alle Klassen, die in einem bestimmten Verzeichnis liegen. Sinnvollerweise werden \n logisch zueinander gehörige Klassen in ein Verzeichnis gepackt. Diese Verzeichnisse \nwerden wiederum logisch zusammengehörig in weitere Verzeichnisse geschachtelt, \n so dass eine ganze Verzeichnisstruktur entsteht. Nach Java-Konvention sollten die Verzeichnisse immer klein geschrieben sein.\n"
+ "Das Standardpaket besteht aus allen Klassen im aktuellen Arbeitsverzeichnis. Eigene Pakete können beispielsweise angelegt werden, indem man\n"
+ "package a.b.c;\n"
+ "am Anfang einer Klasse schreibt und diese Klasse auch in dem angegebenen Pfad a/b/c ablegt. Eine so definierte Klasse kann nach dem Übersetzen durch \n";
public static void main(String[] args) { new CopyOfV_TestWin();
}
public CopyOfV_TestWin() {
try { UIManager .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); }
window(); }
private void window() { this.setPreferredSize(new Dimension(1024, 768)); this.setMinimumSize(new Dimension(1024, 768)); this.setLocation(200, 100); this.setContentPane(window_panel); this.setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window_panel.setPreferredSize(new Dimension(1024, 722)); window_panel.setMinimumSize(new Dimension(1024, 722)); window_panel.setBorder(BorderFactory.createSoftBevelBorder( BevelBorder.RAISED, Color.gray, Color.black, Color.gray, Color.black)); left_panel.setPreferredSize(new Dimension(124, 722)); content_panel.setPreferredSize(new Dimension(874, 722)); content_panel.setBorder(BorderFactory.createSoftBevelBorder( BevelBorder.LOWERED, Color.gray, Color.black, Color.gray, Color.black)); content_panel.setLayout(new BoxLayout(content_panel, BoxLayout.Y_AXIS)); window_panel.add(left_panel); window_panel.add(content_panel); leftPanel(); contentPanel();
setVisible(true); }
private void leftPanel() {
SpringLayout sl = new SpringLayout(); JPanel time_panel = new JPanel(); JPanel label_panel = new JPanel(); JPanel frage_panel = new JPanel(); JPanel scr_panel = new JPanel(new BorderLayout()); JScrollPane scrPane = new JScrollPane(frage_panel); scrPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
left_panel.setLayout(sl);
time_panel.add(new JLabel("Zeit:")); time_panel.add(new JLabel("30:00")); time_panel.setPreferredSize(new Dimension(124, 25)); time_panel.setBorder(BorderFactory.createSoftBevelBorder( BevelBorder.RAISED, Color.gray, Color.black, Color.gray, Color.black));
label_panel.add(new JLabel("Fragen:")); label_panel.add(new JLabel("30")); label_panel.setPreferredSize(new Dimension(124, 25)); label_panel.setBorder(BorderFactory.createSoftBevelBorder( BevelBorder.RAISED, Color.gray, Color.black, Color.gray, Color.black));
scr_panel.setPreferredSize(new Dimension(124, 662)); scr_panel.setMinimumSize(new Dimension(124, 662)); scr_panel.setBorder(BorderFactory.createSoftBevelBorder( BevelBorder.RAISED, Color.gray, Color.black, Color.gray, Color.black));
frage_panel.setLayout(new BoxLayout(frage_panel, BoxLayout.Y_AXIS));
for (int i = 1; i <= 100; i++) { JLabel b = new JLabel(" " + i + " Frage"); frage_panel.add(b); }
scr_panel.add(scrPane);
left_panel.add(time_panel); left_panel.add(label_panel); left_panel.add(scr_panel);
sl.putConstraint(SpringLayout.NORTH, label_panel, 5, SpringLayout.SOUTH, time_panel); sl.putConstraint(SpringLayout.NORTH, scr_panel, 5, SpringLayout.SOUTH, label_panel); }
private void contentPanel() { JPanel name_panel = new JPanel(new BorderLayout()); JPanel frage_panel = new JPanel(new BorderLayout()); JPanel antw_panel = new JPanel(); JPanel naw_panel = new JPanel(); JPanel autor_panel = new JPanel(new BorderLayout());
name_panel.setPreferredSize(new Dimension(874, 25)); frage_panel.setPreferredSize(new Dimension(874, 410)); antw_panel.setPreferredSize(new Dimension(874, 200)); antw_panel.setMinimumSize(new Dimension(874, 200)); naw_panel.setPreferredSize(new Dimension(874, 50)); naw_panel.setMinimumSize(new Dimension(874, 50)); autor_panel.setPreferredSize(new Dimension(874, 15));
content_panel.add(namePanel(name_panel)); content_panel.add(fragePanel(frage_panel)); content_panel.add(antwPanel(antw_panel)); content_panel.add(nawPanel(naw_panel)); content_panel.add(autorPanel(autor_panel)); }
private JPanel namePanel(JPanel name_panel) {
JPanel t_name_panel = new JPanel(); JPanel sp_name_panel = new JPanel();
t_name_panel.setPreferredSize(new Dimension(437, 25)); sp_name_panel.setPreferredSize(new Dimension(437, 25));
JLabel t_name_lbl = new JLabel(" Test Name"); JLabel sp_name_lbl = new JLabel("My Name ");
name_panel.add(t_name_panel.add(t_name_lbl), BorderLayout.WEST); name_panel.add(sp_name_panel.add(sp_name_lbl), BorderLayout.EAST);
name_panel.setBorder(BorderFactory .createLineBorder(Color.gray, 1, true));
return name_panel; }
private JPanel fragePanel(JPanel frage_panel) {
JTextArea fragetext = new JTextArea(frageText); fragetext.enable(false); frage_panel.setBorder(BorderFactory.createLineBorder(Color.gray, 1, true));
frage_panel.add(fragetext);
return frage_panel; }
private JPanel antwPanel(JPanel antw_panel) {
JPanel scr_panel = new JPanel(new BorderLayout()); JScrollPane scrPane = new JScrollPane(antw_panel); ButtonGroup butt_group = new ButtonGroup();
antw_panel.setLayout(new BoxLayout(antw_panel, BoxLayout.Y_AXIS)); antw_panel.setBorder(BorderFactory .createLineBorder(Color.gray, 1, true));
for (int i = 1; i <= 20; i++) { JRadioButton rb = new JRadioButton(" " + i + " Antwortttttttttttttttttttttttttttt"); antw_panel.add(rb); butt_group.add(rb); } scr_panel.add(scrPane);
return scr_panel; }
private JPanel nawPanel(JPanel naw_panel) {
JButton prevO_btn = new JButton("prevO_btn"); JButton prev_btn = new JButton("prev_btn"); JButton next_btn = new JButton("next_btn"); JButton nextO_btn = new JButton("nextO_btn");
naw_panel.add(prevO_btn); naw_panel.add(prev_btn); naw_panel.add(next_btn); naw_panel.add(nextO_btn);
naw_panel.setBorder(BorderFactory.createLineBorder(Color.gray, 1, true));
return naw_panel; }
private JPanel autorPanel(JPanel autor_panel) {
JLabel label = new JLabel(autoren); autor_panel.add(label, BorderLayout.EAST); autor_panel.setBorder(BorderFactory.createLineBorder(Color.gray, 1,true));
return autor_panel; }
}
|
И вопрос вдогонку, Как правильно сделать многострочное поле для вывода?!
Присоединённый файл ( Кол-во скачиваний: 9 )
Capture2.JPG 128,49 Kb
|