2016-12-11 120 views
1

我使用摆动核心Java创建这种GUI的:问题在创作核心Java的GUI

enter image description here

在这个GUI:

1,2,3, 4 ...数字是标签。这些值是固定的。

A,B,C,D ...是可编辑的文本框。用户可以在此输入任何值。

我的方法:使用表格并在其中放置两个textfeild。但不知道如何做到这一点。

是否有任何其他简单的方法来实现这个部分在核心Java?

+0

任何代码到目前为止尚未有? – msagala25

+0

还没有进展。尝试将textfeild放在表格中。但不起作用 – Sarvesh

+1

*“是否有任何其他** easy **方法在核心Java中实现此部分?”*聘请某人。如果你决定投入自己的努力,请回到我们这里。 –

回答

1

根据显示的要求,nested网格可能是一个有用的起点。

image

import java.awt.Color; 
import java.awt.EventQueue; 
import java.awt.GridLayout; 
import javax.swing.BorderFactory; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextField; 

/** 
* @see https://stackoverflow.com/a/41085019/230513 
*/ 
public class GridTest { 

    private static final int N = 12; 

    private void display() { 
     JFrame f = new JFrame("GridTest"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel panel = new JPanel(new GridLayout(3, 4)); 
     for (int i = 0; i < N; i++) { 
      panel.add(createPanel(i)); 
     } 
     f.add(new JScrollPane(panel)); 
     f.pack(); 
     f.setLocationRelativeTo(null); 
     f.setVisible(true); 
    } 

    private static JPanel createPanel(int i) { 
     JPanel panel = new JPanel(new GridLayout(2, 2, 8, 8)); 
     panel.setBorder(BorderFactory.createLineBorder(Color.black)); 
     panel.add(new JLabel(String.valueOf(i))); 
     panel.add(new JLabel()); 
     panel.add(new JLabel()); 
     panel.add(new JTextField(String.valueOf(Character.valueOf((char) ('A' + i))))); 
     return panel; 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new GridTest()::display); 
    } 
}