setBorder的使用问题,出现了异常
请先看代码:
JTextFieldjt=newJTextField("你好!");
jl_center.add(jt);
jt.setOpaque(false);
jt.setBorder(
new Border(){
@Override
public boolean isBorderOpaque() {
// TODO Auto-generated method stub
return false;
}
@Override
public Insets getBorderInsets(Component c) {
// TODO Auto-generated method stub
return null;
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y,
int width, int height) {
// TODO Auto-generated method stub
}
}
);
@Override
public Insets getBorderInsets(Component c) {
// TODO Auto-generated method stub
return null;
}
package TestLogin_claP;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
public class TestJLabel_s_BorderLayout extends JFrame {
TestJLabel_s_BorderLayout() {
JLabel jl_top = new JLabel("1 ");
jl_top.setOpaque(true);
jl_top.setBackground(Color.black);
JLabel jl_left = new JLabel(" 2");
jl_left.setOpaque(true);
jl_left.setBackground(Color.blue);
JLabel jl_buttom = new JLabel("3 ");
jl_buttom.setOpaque(true);
jl_buttom.setBackground(Color.cyan);
JLabel jl_right = new JLabel("4 ");
jl_right.setOpaque(true);
jl_right.setBackground(Color.gray);
JLabel jl_center = new JLabel();
jl_center.setOpaque(true);
jl_center.setBackground(Color.red);
jl_center.setLayout(new FlowLayout());
JTextField jt = new JTextField("你好!");
jl_center.add(jt);
jt.setOpaque(false);
jt.setBorder(new EmptyBorder(0,0,100,100)); // 这样就行!
JPanel jp = new JPanel() {
@Override
public void setLayout(LayoutManager mgr) {
// TODO Auto-generated method stub
mgr = new BorderLayout();
super.setLayout(mgr);
}
};
add(jp);
jp.add(jl_top, BorderLayout.NORTH);
jp.add(jl_left, BorderLayout.WEST);
jp.add(jl_buttom, BorderLayout.SOUTH);
jp.add(jl_right, BorderLayout.EAST);
jp.add(jl_center, BorderLayout.CENTER);
setMinimumSize(new Dimension(350, 200));
setVisible(true);
pack();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
arg0.getWindow().dispose();
super.windowClosing(arg0);
}
});
}
public static void main(String[] args) {
new TestJLabel_s_BorderLayout();
}
}
g.setColor(Color.red);
g.fill3DRect(x, y, width - thickness, thickness, false);
g.fill3DRect(x, y + thickness, thickness, height - thickness,
false);
g.fill3DRect(x + thickness, y + height - thickness, width
- thickness, thickness, false);
g.fill3DRect(x + width - thickness, y, thickness, height
- thickness, false);
}
}); //
JPanel jp = new JPanel() {
@Override
public void setLayout(LayoutManager mgr) {
// TODO Auto-generated method stub
mgr = new BorderLayout();
super.setLayout(mgr);
}
};
add(jp);
jp.add(jl_top, BorderLayout.NORTH);
jp.add(jl_left, BorderLayout.WEST);
jp.add(jl_buttom, BorderLayout.SOUTH);
jp.add(jl_right, BorderLayout.EAST);
jp.add(jl_center, BorderLayout.CENTER);
setMinimumSize(new Dimension(350, 200));
setVisible(true);
pack();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
arg0.getWindow().dispose();
super.windowClosing(arg0);
}
});
}
public static void main(String[] args) {
new TestJLabel_s_BorderLayout();
}
}
OK,调出来了。
感谢2楼