[英]Adding textfields to jframe using graphics2d
public class Contact {
int x0,x1,y2=1500,x3=1500,a=0;
JFrame jf;
private JTextField name = new JTextField();
private JTextField phone;
private JButton start;
boolean clicked=false;
static Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
static int w=(int)dim.getWidth(); static int h=(int)dim.getHeight();
IntroInner d=new IntroInner(); int c;
public Contact() {
}
public void build() throws Exception{
jf=new JFrame("THE COUNTRY CLUB");
jf.getContentPane().add(d);
jf.setSize(w,h);
jf.setVisible(true);
jf.setAlwaysOnTop(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class IntroInner extends JPanel{
public void paintComponent(Graphics g1){
Graphics2D g=(Graphics2D) g1;
FontMetrics metrics = g.getFontMetrics();
int xpos=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2-215;
setFont(new Font("serif",Font.ITALIC,40));
g.setColor(Color.black);
g.fillRect(0,0,this.getWidth(),this.getHeight());
Image im1=new ImageIcon("Images/bg.jpg").getImage();
g.drawImage(im1,0,0,this);
//g.rotate(a);
Image im=new ImageIcon("Images/logo.png").getImage();
g.drawImage(im,xpos,50,this);
g.setColor(Color.white);
g.drawString("Please Enter Your Details",400,400);
g.drawString("Name:",400,475);
g.drawString("Contact No:",400,550);
}
}
public static void main(String[] args) throws Exception{
new Contact().build();
}
}
我在java中使用graphics2d向java框架实现了文本字段。 但没有得到任何有用的意见。 我在stackoverflow中也找到了一些东西。 但这也没有帮助我。 任何人都可以帮助我。 该计划的预期成果如下:提前致谢。
好的,所以你可能需要退一步看看这里的两个方面:
这是一个小例子(在许多其他中),它向您展示了做这样的事情的要点:
import java.awt.BorderLayout;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class BasicSwingTest {
protected void initUI() throws MalformedURLException {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel image = new JLabel(new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Duke3D.png/220px-Duke3D.png")));
frame.setLayout(new BorderLayout());
frame.add(image, BorderLayout.WEST);
JPanel mainPanel = new JPanel(new GridBagLayout());
JPanel panel = new JPanel(new GridLayout(0, 2));
panel.add(new JLabel("Name: "));
JTextField name = new JTextField(20);
panel.add(name);
panel.add(new JLabel("Contact no: "));
JTextField contactNumber = new JTextField(15);
panel.add(contactNumber);
panel.setBorder(BorderFactory.createTitledBorder("Enter your details"));
mainPanel.add(panel);
frame.add(mainPanel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new BasicSwingTest().initUI();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
});
}
}
结果如下:
这是第二个例子(看起来更像你的图像,虽然它需要一些调整):
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class BasicSwingTest2 {
private static final Font FONT = new Font("Times New Roman", Font.PLAIN, 18);
protected void initUI() throws MalformedURLException {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
JLabel contentPane = new JLabel(new ImageIcon(new URL("http://www.pd4pic.com/images/blue-background-simple.jpg")));
contentPane.setLayout(new BorderLayout());
frame.add(contentPane, BorderLayout.CENTER);
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.anchor = GridBagConstraints.WEST;
JPanel panel = new JPanel(new GridBagLayout());
panel.setOpaque(false);
JTextField name = new JTextField(20);
JTextField contactNumber = new JTextField(15);
panel.add(getLabel("Name: "), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(name, gbc);
gbc.gridwidth = GridBagConstraints.RELATIVE;
panel.add(getLabel("Contact no: "), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(contactNumber, gbc);
JLabel topLabel = getLabel("Please enter you details");
topLabel.setHorizontalAlignment(JLabel.CENTER);
contentPane.add(topLabel, BorderLayout.NORTH);
contentPane.add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
private JLabel getLabel(String text) {
JLabel label = new JLabel(text);
label.setFont(FONT);
label.setForeground(Color.WHITE);
return label;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
new BasicSwingTest2().initUI();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.