2013-07-01 3 views
4

Я пытаюсь научить себя, как сделать графический интерфейс с использованием Java swing и Window Builder Pro, после просмотра нескольких видеороликов YouTube и чтения некоторых руководств, я выполнил следующее.Первая попытка простого графического интерфейса

import javax.swing.JFrame; 
import javax.swing.JTabbedPane; 
import javax.swing.JPanel; 
import javax.swing.SpringLayout; 
import javax.swing.JTextPane; 
import javax.swing.JButton; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 


public class JetstreamFrame extends JFrame { 

private static final long serialVersionUID = 1L; 
JTabbedPane tabPane; 

JPanel buttonOnePanel; 
JPanel buttonTwoPanel; 
JPanel textDisplayPanel; 
JTextPane textPane; 
SpringLayout sl_textDisplayPanel; 
SpringLayout springLayout; 
SpringLayout sl_buttonTwoPanel; 
SpringLayout sl_buttonOnePanel; 
JButton ButtonTwo; 
JButton ButtonOne; 

public JetstreamFrame() { 
    springLayout = new SpringLayout(); 
    getContentPane().setLayout(springLayout); 

    tabPane = new JTabbedPane(JTabbedPane.TOP); 
    setupTabPane(); 

    buttonOnePanel = new JPanel(); 
    sl_buttonOnePanel = new SpringLayout(); 
    setupButtonOnePanel(); 

    ButtonOne = new JButton("Click Here!"); 
    setupButtonOne(); 

    buttonTwoPanel = new JPanel(); 
    sl_buttonTwoPanel = new SpringLayout(); 
    setupButtonTwoPanel(); 

    ButtonTwo = new JButton("Click Here!"); 
    setupButtonTwo(); 

    textDisplayPanel = new JPanel(); 
    sl_textDisplayPanel = new SpringLayout(); 
    setupTextDisplayPanel(); 

    textPane = new JTextPane(); 
    setupTextPane(); 

} 

private void setupTabPane() 
{ 
    springLayout.putConstraint(SpringLayout.NORTH, tabPane, 0, SpringLayout.NORTH, getContentPane()); 
    springLayout.putConstraint(SpringLayout.WEST, tabPane, 0, SpringLayout.WEST, getContentPane()); 
    springLayout.putConstraint(SpringLayout.SOUTH, tabPane, -198, SpringLayout.SOUTH, getContentPane()); 
    springLayout.putConstraint(SpringLayout.EAST, tabPane, 484, SpringLayout.WEST, getContentPane()); 
    getContentPane().add(tabPane); 
} 

private void setupButtonOnePanel() 
{ 
    tabPane.addTab("Tab One", null, buttonOnePanel, null); 
    buttonOnePanel.setLayout(sl_buttonOnePanel); 
} 

private void setupButtonOne() 
{ 
    ButtonOne.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) 
     { 

     } 
    }); 
    sl_buttonOnePanel.putConstraint(SpringLayout.NORTH, ButtonOne, 99, SpringLayout.NORTH, buttonOnePanel); 
    sl_buttonOnePanel.putConstraint(SpringLayout.WEST, ButtonOne, 187, SpringLayout.WEST, buttonOnePanel); 
    buttonOnePanel.add(ButtonOne); 
} 

private void setupButtonTwoPanel() 
{ 
    tabPane.addTab("Tab Two", null, buttonTwoPanel, null); 
    buttonTwoPanel.setLayout(sl_buttonTwoPanel); 
} 

private void setupButtonTwo() 
{ 
    ButtonTwo.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) 
     { 

     } 
    }); 
    sl_buttonTwoPanel.putConstraint(SpringLayout.NORTH, ButtonTwo, 99, SpringLayout.NORTH, buttonTwoPanel); 
    sl_buttonTwoPanel.putConstraint(SpringLayout.WEST, ButtonTwo, 187, SpringLayout.WEST, buttonTwoPanel); 
    buttonTwoPanel.add(ButtonTwo); 
} 

private void setupTextDisplayPanel() 
{ 
    springLayout.putConstraint(SpringLayout.NORTH, textDisplayPanel, 6, SpringLayout.SOUTH, tabPane); 
    springLayout.putConstraint(SpringLayout.WEST, textDisplayPanel, 0, SpringLayout.WEST, getContentPane()); 
    springLayout.putConstraint(SpringLayout.SOUTH, textDisplayPanel, -10, SpringLayout.SOUTH, getContentPane()); 
    springLayout.putConstraint(SpringLayout.EAST, textDisplayPanel, 0, SpringLayout.EAST, getContentPane()); 
    getContentPane().add(textDisplayPanel); 
    textDisplayPanel.setLayout(sl_textDisplayPanel); 
} 

private void setupTextPane() 
{ 
    sl_textDisplayPanel.putConstraint(SpringLayout.NORTH, textPane, 0, SpringLayout.NORTH, textDisplayPanel); 
    sl_textDisplayPanel.putConstraint(SpringLayout.WEST, textPane, 0, SpringLayout.WEST, textDisplayPanel); 
    sl_textDisplayPanel.putConstraint(SpringLayout.SOUTH, textPane, 182, SpringLayout.NORTH, textDisplayPanel); 
    sl_textDisplayPanel.putConstraint(SpringLayout.EAST, textPane, 0, SpringLayout.EAST, textDisplayPanel); 
    textDisplayPanel.add(textPane); 
} 

public void start() 
{ 
    this.setSize(500, 500); 
    this.setVisible(true); 
} 

} 

Предпосылка этого кода, чтобы создать окно с несколькими вкладками, а также текстовая область в нижней части, которая не видна, независимо от того, какая вкладка пользователь. Я создал текстовое поле, вкладки, кнопки, а также прослушиватели событий кнопки для этого графического интерфейса.

К сожалению, ни один из учебных пособий, которые я прочитал, не показал мне, как печатать что-либо в текстовой области. Я хотел бы иметь что-то вдоль линий

System.out.println(); 

прикрепленных к каждой из кнопок, и есть, что печать отображается в текстовой области, но я не знаю, как это сделать.

Я также хотел бы знать, была ли текстовая область, которую я создал с результатом, в полосе прокрутки вдоль стороны, если напечатанный текст выходит за пределы видимого кадра.

+0

* "используя Java swing и Window Builder Pro, после просмотра нескольких видеороликов youtube, .." * (содрогните) Дальний путь вперед. Закладка этой ссылки - [Создание графического интерфейса с JFC/Swing] (http://docs.oracle.com/javase/tutorial/uiswing/). Многие из ваших предстоящих вопросов получат ссылки на его разделы. –

ответ

4
textpane.append("TEXTHERE"); 

будет добавлять необходимый текст в текстовой области на основе event. Когда текст append() мы также можем добавить новый текст в существующий проход. Если вы хотите очистить JTextArea, тогда я рекомендую вам вызвать метод setText().

JScrollPane необходимо, чтобы добавить полосу прокрутки в JTextArea, который может быть сделан следующим образом:

import javax.swing.JScrollPane; 
JScrollPane scrollPane = new JScrollPane(TEXTAREAHERE); 

Лично я хотел бы установить свойство моего скроллинга панель для этого, чтобы гарантировать, что Полоса прокрутка только возможность прокрутки вверх и вниз и снимите левый и правый прокрутки:

scrollPane.setHorizonalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

2

Если я вас правильно понял, вы могли бы просто использовать метод append().

Вот больше о JTextArea

Чтобы проверить это, добавьте вызов к нему в одном из ваших кнопок событий (не похоже, что они будут делать что-либо в данный момент). Итак, вы можете сделать, jTextArea.append("Did it print?"); и нажмите эту кнопку, чтобы увидеть, как она работает.

Редактировать Похоже, что вы используете JTextPane, в этом случае, возможно, использовать setText(). Больше информации here

Смежные вопросы