我是摇摆的初学者。我试图创建一个选项卡式窗口作为我项目的GUI的一部分。但如下所示,用于导航选项卡的按钮显示某种边框。有没有办法可以删除这些边框?请参阅附图以查看问题。
GUI的代码如下
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class tst {
/**
* @param args the command line arguments
*/
public static String generateHtml(String tabButtonLabel,String style) {
/*@@Generates HTML for the tab button when the button label is given*/
String ret = "<html><body style = '"+style+"'>"+tabButtonLabel+"</body></html>";
return ret;
}
public static void main(String[] args) {
// TODO code application logic here
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
JFrame frame = new JFrame("tst");
frame.setVisible(true);
frame.setSize(screenSize);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*Groups tab*/
JPanel groups = new JPanel();
groups.setBackground(Color.gray);
/*Settings Tab*/
JPanel settings = new JPanel();
/*About Tab*/
JPanel about = new JPanel();
/*Tabbed pane to hold all panels*/
JTabbedPane tabbedPane = new JTabbedPane();
/*Tabbed Pane CSS*/
String tabButtonCss = "margin:0;width:110px;height:10px;border-radius:3px;padding:10px;background:#fff;text-align:center;border:none;";
tabbedPane.setVisible(true);
tabbedPane.add(generateHtml("Groups",tabButtonCss),groups);
tabbedPane.add("Settings",settings);
tabbedPane.add("About",about);
/*Tab styles*/
tabbedPane.setBackground(Color.gray);
tabbedPane.setForeground(Color.white);
tabbedPane.setBounds(0, 0, 0,0);
//tabbedPane.setBorder(new EmptyBorder(-10,-20,-10,0));
frame.add(tabbedPane);
}
}
答案 0 :(得分:7)
如@Smit所述,这完全取决于CSS。另请注意,Java HTML / CSS引擎无法识别#fff
颜色的“3位数”样式快捷方式。要变白,我们必须使用#ffffff
。
import java.awt.*;
import javax.swing.*;
class ExampleCSS {
public static void showStyle(String style) {
JPanel gui = new JPanel(new BorderLayout());
String html1 = "<html><body style = '"+style+"'>";
String html2 = "</body></html>";
JTabbedPane tp = new JTabbedPane();
tp.addTab(html1 + "Groups" + html2, new JLabel(style));
tp.addTab(html1 + "Settings" + html2, new JLabel(style));
tp.addTab(html1 + "About" + html2, new JLabel(style));
gui.add(tp);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setContentPane(gui);
f.setMinimumSize(new Dimension(400,100));
f.pack();
f.setLocationByPlatform(true);
f.setVisible(true);
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
String[] css = {
"margin:0;background:#ffffff;",
"padding:10px;",
"width:110px;height:10px;border-radius:3px;"
+ "text-align:center;border:none;"
};
showStyle(css[0]);
showStyle(css[0]+css[1]);
showStyle(css[0]+css[1]+css[2]);
}
};
// Swing GUIs should be created and updated on the EDT
// http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
SwingUtilities.invokeLater(r);
}
}
另请参阅@whiskeyspider建议re {trashgod解决方案BG color。很多(很多)比试图在HTML中强制它更好。