Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTabel断线_Java_Swing_Jtable_Awt_Line Breaks - Fatal编程技术网

Java JTabel断线

Java JTabel断线,java,swing,jtable,awt,line-breaks,Java,Swing,Jtable,Awt,Line Breaks,我的JTable中的换行符有问题 我尝试了很多解决方案,但都不奏效,所以我问了这个问题 谁能帮我解决这个问题,而不改变我的JTable构造函数 有关我的代码的一些详细信息: 我的程序显示,两个jTabbedPane和选项卡0中的JTable还有4个 JTabbedPane包含相同的表 我的程序只能全屏运行 这个程序只是测试jTable和jTabbedPanes的功能 我的问题集中在jTable单元格中的换行符上 代码: import java.awt.*; 导入java.awt.event.

我的
JTable
中的换行符有问题

我尝试了很多解决方案,但都不奏效,所以我问了这个问题

谁能帮我解决这个问题,而不改变我的
JTable
构造函数

有关我的代码的一些详细信息:

  • 我的程序显示,两个jTabbedPane和选项卡0中的JTable还有4个 JTabbedPane包含相同的表
  • 我的程序只能全屏运行
  • 这个程序只是测试jTable和jTabbedPanes的功能
  • 我的问题集中在jTable单元格中的换行符上
代码:

import java.awt.*;
导入java.awt.event.*;
导入java.util.*;
导入javax.swing.*;
导入javax.swing.JTabbedPane;
导入javax.swing.event.*;
导入javax.swing.table.*;
公共类Versuch01扩展了JFrame{
//安防属性
JTabbedPane[]JTabbedPane;
JPanel[]jPanelH;
JPanel[]jPanelL;
JScrollPane[]JScrollPane;
JTable[]JTable;
最终int-wordWrapColumnIndex=5;
//恩德属性
公共服务(01({
//帧初始化
超级();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
维度d=Toolkit.getDefaultToolkit().getScreenSize();
int frameWidth=400;
int frameHeight=400;
设置大小(帧宽度、帧高度);
intx1=(d.width-getSize().width)/2;
inty1=(d.height-getSize().height)/2;
设定位置(x1,y1);
int x=(int)d.getWidth();
int y=(int)d.getHeight();
setExtendedState(java.awt.Frame.MAXIMIZED_两者);
setLayout(新的BorderLayout());
setTitle(“Versuch01”);
可设置大小(真);
字符串[]列名称={
“名字”、“姓氏”、“运动”、“年份”,
“素食者”
};
对象[][]数据={
{
“凯西”,
“史密斯AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
“滑雪板”、新整数(5)、新布尔值(真)
},
{
“约翰”,“多伊”,“赛艇”,新整数(3),
新布尔值(真)
},
{
“苏”、“黑”、“针织”,新整数(2),
新布尔值(false)
},
{
“简”,“白”,“快速阅读”,新整数(20),
新布尔值(false)
},
{
“乔”,“布朗”,“池”,新整数(10),
新布尔值(false)
}
};
//安芳康普嫩滕酒店
jTabbedPane=新jTabbedPane[2];
for(int i=0;i
换句话说,你想将“Smithaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?使用HTML标记,因为“我尝试了许多解决方案,但没有一个成功”,列出“前三名”&它们失败的原因。@Frakcool我希望单元格变大,当字符串太长时换行。什么是“太长”?您需要HTML标记和一些逻辑来知道在哪里添加它们String@Andrew汤普森1。post),错误:单元格未更改2。(5.post),错误
import java.awt.*;
import java.awt.event.*;

import java.util.*;

import javax.swing.*;
import javax.swing.JTabbedPane;
import javax.swing.event.*;
import javax.swing.table.*;


public class Versuch01 extends JFrame {
  // Anfang Attribute
  JTabbedPane[] jTabbedPane;
  JPanel[] jPanelH;
  JPanel[] jPanelL;
  JScrollPane[] jScrollPane;
  JTable[] jTable;
  final int wordWrapColumnIndex = 5;
  // Ende Attribute
  public Versuch01() {
    // Frame-Initialisierung
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int frameWidth = 400;
    int frameHeight = 400;
    setSize(frameWidth, frameHeight);

    int x1 = (d.width - getSize().width) / 2;
    int y1 = (d.height - getSize().height) / 2;
    setLocation(x1, y1);

    int x = (int) d.getWidth();
    int y = (int) d.getHeight();
    setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);

    setLayout(new BorderLayout());
    setTitle("Versuch01");
    setResizable(true);

    String[] columnNames = {
                             "First Name", "Last Name", "Sport", "# of Years",
                             "Vegetarian"
                           };
    Object[][] data = {
                        {
                          "Kathy",
                          "Smithaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaa",
                          "Snowboarding", new Integer(5), new Boolean(true)
                        },
                        {
                          "John", "Doe", "Rowing", new Integer(3),
                          new Boolean(true)
                        },
                        {
                          "Sue", "Black", "Knitting", new Integer(2),
                          new Boolean(false)
                        },
                        {
                          "Jane", "White", "Speed reading", new Integer(20),
                          new Boolean(false)
                        },
                        {
                          "Joe", "Brown", "Pool", new Integer(10),
                          new Boolean(false)
                        }
                      };

    // Anfang Komponenten
    jTabbedPane = new JTabbedPane[2];

    for (int i = 0; i < jTabbedPane.length; i++) {
      jTabbedPane[i] = new JTabbedPane(JTabbedPane.TOP,
                                       JTabbedPane.WRAP_TAB_LAYOUT);
    } // end of for

    jPanelH = new JPanel[2];

    for (int i = 0; i < jPanelH.length; i++) {
      jPanelH[i] = new JPanel();
      jTabbedPane[0].addTab("Tab " + i, jPanelH[i]);
    } // end of for

    jPanelL = new JPanel[4];
    jTable = new JTable[4];
    jScrollPane = new JScrollPane[4];

    for (int i = 0; i < jPanelL.length; i++) {
      jPanelL[i] = new JPanel();
      MultilineTableCell wordWrapRenderer = new  MultilineTableCell();
      jTable[i] = new JTable(data, columnNames) {
          public TableCellRenderer getCellRenderer(int row, int column) {
            if (column == wordWrapColumnIndex) {
              return wordWrapRenderer;
            } else {
              return super.getCellRenderer(row, column);
            }
          }
        };
      jTable[i].setDefaultRenderer(String.class, new LineWrapCellRenderer());
      jTable[i].setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
      jTable[i].getColumnModel().getColumn(0)
               .setPreferredWidth((int) ((double) x * (0.05))); //Gibt die relative Größe in dezimalen Zahlen zu Tabbele an.
      jTable[i].getColumnModel().getColumn(1)
               .setPreferredWidth((int) ((double) x * (0.65)));
      jTable[i].getColumnModel().getColumn(2)
               .setPreferredWidth((int) ((double) x * (0.1)));
      jTable[i].getColumnModel().getColumn(3)
               .setPreferredWidth((int) ((double) x * (0.1)));
      jTable[i].getColumnModel().getColumn(4)
               .setPreferredWidth((int) ((double) x * (0.1)));
      jScrollPane[i] = new JScrollPane(jTable[i]);
      jScrollPane[i].setPreferredSize(new Dimension(x, y));
      jPanelL[i].add(jScrollPane[i]);
      jTabbedPane[1].addTab("Tab " + i, jPanelL[i]);
      jTabbedPane[1].setTabPlacement(JTabbedPane.TOP);
      jTabbedPane[1].setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
      jTabbedPane[1].setPreferredSize(new Dimension(x, y));
      jPanelH[0].add(jTabbedPane[1]);
    } // end of for

    add(jTabbedPane[0]);

    // Ende Komponenten
    setVisible(true);
  } // end of public Versuch01

  // Anfang Methoden
  public static void main(String[] args) {
    new Versuch01();
  } // end of main

  // Ende Methoden
} // end of class Versuch01