我一直在寻找能够增加JTable中行的高度的解决方案.我一直在使用setRowHeight(int int)方法编译并运行OK,但没有增加row [s].当我使用行的getRowHeight(int)方法设置高度时,它会打印出我增加行的大小,所以我不确定是什么问题.下面的代码粗略说明了我是如何解决它的.
我的类扩展了JFrame.
String[] columnNames = {"Column 1", "Column 2", "Column 1 3"};
JTable table = new JTable(new DefaultTableModel(columnNames, people.size()));
DefaultTableModel model = (DefaultTableModel) table.getModel();
int count =1;
for(Person p: people)
{
model.insertRow(count,(new Object[]{count, p.getName(), p.getAge()+"",
p.getNationality}));
count++;
}
table.setRowHeight(1, 15);//Try set height to 15 (I've tried higher)
Run Code Online (Sandbox Code Playgroud)
谁能告诉我哪里出错了?我试图将第1行的高度增加到15像素?
我在尝试将 JButton 添加到带有字符串的 JTextPane 时遇到问题。所以我想要做的是在 for 循环中添加每个字符串,然后在添加的字符串之后添加广告 JButton。下面的代码是我想要完成的。
ArrayLst<String> data = new ArrayList();
data.add("Data here");
data.add("Data here 2");
data.add("Data here 3");
data.add("Data here 4");
Container cp = getContentPane();
JTextPane pane = new JTextPane();
SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setBold(set, true);
pane.setBackground(Color.BLUE);
pane.setEditable(false);
Document doc = pane.getStyledDocument();
for(int i=0; i<data.size(); i++)
{
doc.insertString(doc.getLength(), data.get(i)+ "\n", set);
pane.insertComponent(new JButton("View Info"));
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何将 JButton 添加到同一行上的每个字符串?
非常感谢
有许多已解决的多维数组帖子,但我很难通过for循环创建一个.
这是我想要做的代码的代码片段.
//Get a list of Person objects using a method
ArrayList<Person> people = getPeopleList();
//Create an array of 10 Objects with 4 values each
Object[][] data = new Object[10][4];
int count =1;
for(Person p: people)
{
//This wont compile. This line is trying to add each Object data with values
data[count-1][count-1] = {count, p.getName(), p.getAge(), p.getNationality()};
count++;
}
//I then can add this data to my JTable..
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何使用for循环创建这个多维数组.我不想要一个Person多维数组.它需要是一个Object多维数组吗?谢谢
我正在尝试使用JDBC连接到我的locahost上的Derby数据库.
我使用命令启动了数据库:java -jar lib;derbyrun.jar server start,它在端口1527上成功启动.
在另一个命令终端上,我使用命令:java -classpath .;lib;derbyclient.jar testsqldatabase.TestSQLDatabase但是我收到以下错误:
java.sql.SQLException: No suitable driver found for jdbc:postgresql:COREJAVA
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at testsqldatabase.TestSQLDatabase.getConnection(TestSQLDatabase.jav
)
at testsqldatabase.TestSQLDatabase.runTest(TestSQLDatabase.java:39)
at testsqldatabase.TestSQLDatabase.main(TestSQLDatabase.java:26)
Run Code Online (Sandbox Code Playgroud)
我的datatbase.properties文件包含以下行:
jdbc.drivers=org.postgresql.Driver
jdbc.url=jdbc:postgresql:COREJAVA
jdbc.username=dbuser
jdbc.password=secret
Run Code Online (Sandbox Code Playgroud)
java程序如下:
public class TestSQLDatabase
{
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException
{
try
{
runTest();
}
catch(SQLException ex)
{
for(Throwable t: ex)
t.printStackTrace();
}
}
/*Runs a test by …Run Code Online (Sandbox Code Playgroud) 我有一个JCheckBox在JTable的最后一列中工作.但是当我将颜色设置为该列中的单元格时,它似乎会覆盖渲染的对象(JCheckBox).
下面的代码片段是我想要做的:
//Overriding these methods using the DefaultTableModel constructor works .
DefaultTableModel model = new DefaultTableModel(data, columnNames)
{
@Override
public Class getColumnClass(int col)
{
return getValueAt(1, col).getClass();
}
@Override
public boolean isCellEditable(int rowIndex, int colIndex)
{
return (colIndex == CHECK_COL);
}
};
JTable table = new JTable(model);
//Constructing and setting a render background and foreground color
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setBackground(Color.BLACK);
renderer.setForeground(new Color(255, 0, 255));
TableColumn column = table.getColumnModel().getColumn(4);
column.setCellRenderer(centerRenderer);
//Now the last column contains just Boolean values, rather …Run Code Online (Sandbox Code Playgroud) 我试图写一个for循环来从特定的索引范围迭代.
因此,如果我有一个data[]长度为10 的数组,并且我只想从第3个位置(索引2)到第9个位置(索引8)进行迭代,那么我该如何编写该循环结构呢?
示例代码如下:
//Trying to iterate from index 2 - 9
for(int i=0; i<data.length && i>2 && i<9; i++)
{
System.out.println(data[i]);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢