2012-02-06 2 views
-1

Может ли кто-нибудь помочь мне в решении этой проблемы. У меня есть этот массив String, который я хочу построить в таблице без использования JTable:Назначение строки в таблице

String inventory[][] = {{"Chairs","Tables"},{"Bed","Sofas"}} 

Я использую вложенные for петли и drawLine генерировать эту сетку, но я не мог управлять, чтобы поставить String внутри таблицы. Может кто-нибудь мне помочь?

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

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); 
    } 
} 
+1

Каков код у вас есть? Возможно, мы могли бы помочь вам с этим справиться. –

+0

Извините, что я не мог этого сделать в своей части моей диссертации, но вот пример закрытия, который я получаю в форме интернета. Это не совсем то же самое, но близко. – user1110191

+0

Тем не менее, вы не предоставляете образцы здесь, поэтому лучшее, что мы можем сделать, это догадываться. Так что я предполагаю, что вы возились с методами Graphics2D? Тогда вы можете просто использовать метод drawString, нет? –

ответ

0

Немного неясно, но я полагаю, вы переопределены paint или paintComponent на каком-то существующем классе UI и использовать Graphics.drawLine метод рисовать таблицы сетки.

Если это так, вы можете сделать подобный вложенный цикл и вызвать Graphics.drawString внутри, чтобы визуализировать строки. Учтите, что строки привязаны по базовой линии, а не по левому верхнему углу.

UPD. Опубликовано перед вашими изменениями, поэтому первая часть ответа выглядит странно.

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