如何在GUI中创建一列字符串

时间:2015-01-03 17:02:28

标签: java user-interface jframe

我刚刚开始学习Java,我想制作一个显示7表的基本gui。

这是我的代码:

import javax.swing.*;
import java.awt.*;

public class test {
    private JFrame f;
    private JPanel p;
    private JLabel lab;
    private JLabel lab1;
    private JLabel lab2;

    public test() {
        gui();
    }

    public void gui() {
    {
        f = new JFrame ("table of 7");
        f.setVisible(true);
        f.setSize(200,400);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        p = new JPanel();
        p.setBackground(Color.YELLOW);

        lab = new JLabel("1 x 7 = 7" );
        lab1 = new JLabel("2 x 7 = 21");
        lab2 = new JLabel("3 x 7 = 28");

        p.add(lab); p.add(lab1); p.add(lab2); 
        f.add(p);
    }
}

public static void main(String[] args) {
        new test();
}
}

问题是我想在一个整齐的列中显示表,我在单个字符串中尝试了/ n但这不起作用。

2 个答案:

答案 0 :(得分:0)

  

问题是我想在一个整洁的列中显示表

他们需要使用等宽字体。

可能是这样的:

label.setFont( new Font("monospaced", Font.PLAIN, 12) );

您需要为所有标签执行此操作。

或者显示数据的一种更简单的方法是使用JTextArea然后你可以做类似的事情:

JTextArea textArea - new JTextArea(10, 20);
textArea.setFont(...);
textArea.append("1 x 7 =  7");
textArea.append("\n2 x 7 = 14");

答案 1 :(得分:0)

您可以使用JTextArea并将其设置为不可编辑,因此它看起来像标签,您也可以更改其背景颜色 示例:

JTextArea textArea = new JTextArea();
textArea.setEditable(false);
textArea.setBackground(Color.gray.brighter());
textArea.setText("1*7=7\n2*7=14");