Java 在表中指定字符串
有人能帮我解决这个问题吗。我有一个Java 在表中指定字符串,java,swing,Java,Swing,有人能帮我解决这个问题吗。我有一个字符串数组,我想在不使用jtable的情况下将其绘制在表中: String inventory[][] = {{"Chairs","Tables"},{"Bed","Sofas"}} 我对循环使用嵌套的,并使用绘图线生成此网格,但我无法将字符串放入表中。有人能帮我吗 这不是我的程序,但这是我从互联网上得到的一个例子。我的程序与此有点类似 import java.awt.* ; import java.awt.event.* ; import javax.swi
字符串数组
,我想在不使用jtable的情况下将其绘制在表中:
String inventory[][] = {{"Chairs","Tables"},{"Bed","Sofas"}}
我对循环使用嵌套的,并使用绘图线
生成此网格,但我无法将字符串
放入表中。有人能帮我吗
这不是我的程序,但这是我从互联网上得到的一个例子。我的程序与此有点类似
import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;
import javax.swing.border.TitledBorder;
import javax.swing.border.EtchedBorder;
import java.awt.*;
import java.awt.event.*;
public class testtable extends JFrame {
private static final int DRAWING_SIZE = 600;
private static final int SUBDIVISIONS = 2;
private static final int SUBDIVISION_SIZE = DRAWING_SIZE / SUBDIVISIONS;
public testtable() {
setSize(800, 800);
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.gridx = 0;
gbc.gridy = 0;
JLabel drawingBoard = new JLabel("Drawing Board");
gbc.anchor = GridBagConstraints.SOUTH;
drawingBoard.setFont(new Font("Serif", Font.BOLD, 28));
add(drawingBoard, gbc);
JPanel panel = new JPanel() {
@Override public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.GRAY);
for (int i = 1; i < SUBDIVISIONS; i++) {
int x = i * SUBDIVISION_SIZE;
g2.drawLine(x, 0, x, getSize().height);
}
for (int i = 1; i < SUBDIVISIONS; i++) {
int y = i * SUBDIVISION_SIZE;
g2.drawLine(0, y, getSize().width, y);
}
}
};
panel.setPreferredSize(new Dimension(DRAWING_SIZE, DRAWING_SIZE));
panel.setBackground(Color.WHITE);
panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
gbc.gridy++;
gbc.anchor = GridBagConstraints.CENTER;
add(panel, gbc);
JButton saveDrawing = new JButton("SAVE DRAWING");
gbc.gridy++;
gbc.anchor = GridBagConstraints.NORTH;
add(saveDrawing, gbc);
}
public static void main(String[] args) {
(new testtable()).setVisible(true);
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.border.TitledBorder;
导入javax.swing.border.EtchedBorder;
导入java.awt.*;
导入java.awt.event.*;
公共类testtable扩展了JFrame{
专用静态最终整型图纸尺寸=600;
私有静态最终整数细分=2;
专用静态最终整型细分\尺寸=图纸\尺寸/细分;
公共测试表(){
设置大小(800800);
setLayout(新的GridBagLayout());
GridBagConstraints gbc=新的GridBagConstraints();
gbc.weightx=1.0;
gbc.weighty=1.0;
gbc.gridx=0;
gbc.gridy=0;
JLabel drawingBoard=新JLabel(“绘图板”);
gbc.anchor=gridbag.SOUTH;
drawingBoard.setFont(新字体(“衬线”,Font.BOLD,28));
添加(绘图板,gbc);
JPanel面板=新的JPanel(){
@替代公共零部件(图形g){
超级组件(g);
图形2d g2=(图形2d)g;
g2.setPaint(颜色为灰色);
对于(int i=1;i<细分;i++){
int x=i*细分大小;
g2.抽绳(x,0,x,getSize().高度);
}
对于(int i=1;i<细分;i++){
int y=i*细分大小;
g2.绘制线(0,y,getSize().宽度,y);
}
}
};
面板。设置首选尺寸(新尺寸(图纸尺寸、图纸尺寸));
面板.立根背景(颜色.白色);
panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
gbc.gridy++;
gbc.anchor=GridBagConstraints.CENTER;
添加(面板,gbc);
JButton saveDrawing=新JButton(“保存图形”);
gbc.gridy++;
gbc.anchor=gridbag.NORTH;
添加(保存图形,gbc);
}
公共静态void main(字符串[]args){
(新testtable()).setVisible(true);
}
}
有点不清楚,但我想您已经覆盖了一些现有UI类上的paint
或paintComponent
,并使用了Graphics.drawLine
方法来绘制表格网格
如果这是正确的,那么您可以创建类似的嵌套循环,并在内部调用Graphics.drawString
来渲染字符串。考虑字符串是由基线锚定的,而不是由左上角锚定的。< /P>
UPD。在编辑之前发布,所以答案的第一部分现在看起来很奇怪。您现在有什么代码?也许我们可以帮助你建立它。很抱歉,我不能这样做,因为这是我论文的一部分,但这里是我从互联网上得到的一个例子。虽然不完全一样,但很接近。不过,你们这里并没有提供样品,所以我们能做的最好的事情就是猜测。所以我猜你在搞乱Graphics2D方法?那么您可以简单地使用drawString方法,不是吗?请学习java命名约定并遵守它们