Java 如何在Jtable上正确对齐标题边框
我正在尝试用java语言构建小型应用程序。我开始使用此链接: 一切都很好。我完成了那项任务,但剩下的一件事是我正试图删除额外的标题边界。我试图缩小标题边界,但它仍然不起作用。任何有好建议的人都试着和我分享Java 如何在Jtable上正确对齐标题边框,java,swing,Java,Swing,我正在尝试用java语言构建小型应用程序。我开始使用此链接: 一切都很好。我完成了那项任务,但剩下的一件事是我正试图删除额外的标题边界。我试图缩小标题边界,但它仍然不起作用。任何有好建议的人都试着和我分享 package swings.application.framework; import java.awt.*; import java.awt.event.ActionEvent ; import java.awt.event.ActionListener; im
package swings.application.framework;
import java.awt.*;
import java.awt.event.ActionEvent
;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Inf3rNix
*/
public class KidsProblemTable {
private static JButton okbtn;
private static JFrame frame;
public static void main(String[] args) {
Runnable runner = new Runnable() {
@Override
public void run() {
Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
frame = new JFrame("Kids Table");
Border border = LineBorder.createGrayLineBorder();
frame.setLayout(null);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
JLabel Heading = new JLabel("My Result");
Heading.setFont(new Font("Gabriola", Font.ITALIC, 56));
Heading.setForeground(Color.BLUE);
Heading.setBounds(550, -60, 300, 200);
JLabel Heading2 = new JLabel("Nice Job! Here are your results...");
Heading2.setFont(new Font("Buxton Sketch", Font.ITALIC, 26));
Heading2.setForeground(Color.BLUE);
Heading2.setBounds(500, 10, 600, 200);
JLabel Heading3 = new JLabel();
String str = "You got 5 correct answer out of 7 question";
Heading3.setText("<html><a href=' ' style='color:rgb(248,116,49);'>" + str + "</a></html>");
Heading3.setFont(new Font("Andy", Font.PLAIN, 20));
Heading3.setBounds(500, 70, 600, 200);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
Border border1 = BorderFactory.createTitledBorder("Exercise");
panel1.setBounds(150, 200, 1000, 190);
String column = "Questions".toUpperCase();
// AttributedString as = new AttributedString(column);
// Font plainFont = new Font("Times New Roman", Font.PLAIN, 24);
// as.addAttribute(TextAttribute.FONT, plainFont);
// as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON,0,8 );
String column1 = "Problem".toUpperCase();
String column2 = "Answer".toUpperCase();
String column3 = "Answer".toUpperCase();
String results = "results".toUpperCase();
Object rowData[][] = {{"1", "3+9", "12", "12", "Correct !"},
{"2", "4+3", "7", "7", "Correct !"},
{"3", "10+8", "17", "18", "Sorry :("},
{"4", "5+1", "6", "6", "Correct !"},
{"5", "10+8", "18", "18", "Correct !"},
{"6", "8+2", "10", "10", "Correct !"},
{"7", "5+6", "4", "11", "Sorry :("}
};
Object columnNames[] = {column, column1, column2, column3, results};
DefaultTableModel model = new DefaultTableModel(rowData, columnNames);
JTable tb1 = new JTable(model) {
//when checking if a cell is editable always return false
public boolean isCellEditable(int rowIndex, int colIndex) {
return false; //Disallow the editing of any cell
}
};
//JTable table1 = new JTable(rowData, columnNames1);
tb1.setBackground(Color.getHSBColor(153, 0, 91));
JScrollPane scrollPane1 = new JScrollPane(tb1);
Border raisedbevel = BorderFactory.createRaisedBevelBorder();
Border loweredbevel = BorderFactory.createLoweredBevelBorder();
Border raisedetched = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
// ImageIcon icon = createImageIcon("images/wavy.gif", "wavy-line border icon");
okbtn=new JButton("Press Ok to Exit");
okbtn.setBorder(raisedbevel);
okbtn.setFont(new Font("Vani", Font.BOLD, 12));
okbtn.setBounds(575, 390, 150, 50);
panel2.add(scrollPane1, BorderLayout.CENTER);
okbtn.addActionListener(new buttonActionListener());
frame.add(Heading);
frame.add(Heading2);
frame.add(Heading3);
frame.add(okbtn);
frame.add(panel1);
panel2.setBorder(border1);
panel1.add(panel2);
frame.setSize(500, 500);
frame.setVisible(true);
}
};
EventQueue.invokeLater(runner);
}
private static class buttonActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==okbtn){
JOptionPane.showMessageDialog(null, "All the best !!!");
WindowEvent winClosingEvent = new WindowEvent(frame, WindowEvent.WINDOW_CLOSING );
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent( winClosingEvent );
}
}
}
}
package.application.framework;
导入java.awt.*;
导入java.awt.event.ActionEvent
;
导入java.awt.event.ActionListener;
导入java.awt.event.WindowEvent;
导入javax.swing.*;
导入javax.swing.border.border;
导入javax.swing.border.EtchedBorder;
导入javax.swing.border.LineBorder;
导入javax.swing.table.DefaultTableModel;
/**
*
*@author Inf3rNix
*/
公共类问题{
私有静态JButton-okbtn;
私有静态JFrame;
公共静态void main(字符串[]args){
Runnable runner=新的Runnable(){
@凌驾
公开募捐{
维度screensize=Toolkit.getDefaultToolkit().getScreenSize();
框架=新的JFrame(“儿童表”);
Border Border=LineBorder.createGrayLineBorder();
frame.setLayout(空);
frame.setDefaultCloseOperation(关闭时退出frame);
JLabel Heading=新JLabel(“我的结果”);
标题.setFont(新字体(“Gabriola”,Font.ITALIC,56));
标题.设置前景(颜色.蓝色);
标题.立根(550,-60300200);
JLabel Heading2=新的JLabel(“干得好!这是你的结果…”);
标题2.setFont(新字体(“Buxton Sketch”,Font.ITALIC,26));
标题2.设置前景(颜色:蓝色);
头2.立根(500,1060200);
JLabel Heading3=新的JLabel();
String str=“你从7个问题中得到了5个正确答案”;
标题3.setText(“”);
Heading3.setFont(新字体(“Andy”,Font.PLAIN,20));
头3.立根(500、70、600、200);
JPanel panel1=新的JPanel();
JPanel panel2=新的JPanel();
Border border1=BorderFactory.createTitleBorder(“练习”);
镶板1.立根(1502001000190);
String column=“Questions.toUpperCase();
//AttributedString as=新的AttributedString(列);
//Font plainFont=新字体(“泰晤士报新罗马”,Font.PLAIN,24);
//as.addAttribute(TextAttribute.FONT,plainFont);
//as.addAttribute(texttribute.UNDERLINE,texttribute.UNDERLINE_ON,0,8);
String column1=“Problem”.toUpperCase();
String column2=“Answer”.toUpperCase();
String column3=“Answer”.toUpperCase();
String results=“results”.toUpperCase();
对象行数据[][]={{“1”、“3+9”、“12”、“12”、“正确!”,
{“2”,“4+3”,“7”,“7”,“正确!”,
{“3”,“10+8”,“17”,“18”,“对不起:(“},
{“4”,“5+1”,“6”,“6”,“正确!”,
{“5”,“10+8”,“18”,“18”,“正确!”,
{“6”,“8+2”,“10”,“10”,“正确!”,
{“7”,“5+6”,“4”,“11”,“对不起:(“}
};
对象columnNames[]={column,column1,column2,column3,results};
DefaultTableModel=新的DefaultTableModel(行数据、列名称);
JTable tb1=新JTable(型号){
//检查单元格是否可编辑时,始终返回false
公共布尔值isCellEditable(int rowIndex,int colIndex){
return false;//不允许编辑任何单元格
}
};
//JTable table 1=新的JTable(行数据,列名称1);
tb1.挫折背景(Color.getHSBColor(153,0,91));
JScrollPane scrollPane1=新的JScrollPane(tb1);
Border Raised斜面=BorderFactory.CreateRaisedBevelOrder();
Border Lowered斜面=BorderFactory.CreateLoweredBevelOrder();
Border raisedetched=BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
//ImageIcon icon=createImageIcon(“images/wavy.gif”,“波浪线边框图标”);
okbtn=新JButton(“按Ok退出”);
okbtn.立根订单(升起斜角);
okbtn.setFont(新字体(“Vani”,Font.BOLD,12));
okbtn.立根(575390150,50);
panel2.add(滚动窗格1,BorderLayout.CENTER);
okbtn.addActionListener(新按钮ActionListener());
框架.添加(标题);
框架。添加(标题2);
框架。添加(标题3);
帧添加(okbtn);
框架。添加(面板1);
第2组:订单(边界1);
第1组。添加(第2组);
框架。设置尺寸(500500);
frame.setVisible(true);
}
};
调用器(运行器);
}
私有静态类buttonActionListener实现ActionListener{
@凌驾
已执行的公共无效行动(行动事件ae){
如果(ae.getSource()==okbtn){
showMessageDialog(null,“一切都好!!!”);
WindowEvent winClosingEvent=新的WindowEvent(帧,WindowEvent.WINDOW\u关闭);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
}
}
}
我发现了你的问题,
您已将滚动窗格添加到panel2,如下所示:
panel2.add(scrollPane1, BorderLayout.CENTER);
但您没有将布局设置为panel2的BorderLayout。
然后将panel1的布局设置为null
请参阅此代码
JPanel panel1 = new JPanel();
panel1.setLayout(null);//add to your code
JPanel panel2 = new JPanel();
panel2.setLayout(new BorderLayout());//add to your code
panel2.setBounds(0,0,800,120);//add to your code
输出:
可能几小时后会删除此图像
我发现了你的问题,
您已将滚动窗格添加到panel2,如下所示:
panel2.add(scrollPane1, BorderLayout.CENTER);
但是你