之后你可以把顶端很多输入了菜名的行用选择整行、右键-隐藏,给隐藏起来,或者滚动到你的当前标题行到屏幕顶端,然后冻结窗格,总之可以避免总看到上面一大堆菜名。
还有个办法类似,就是采用下拉列表选择的方式,这样就不用输入了,而是全用鼠标选择,选中要输入的菜名单元格,然后在数据-数据有效性中、有效性条件允许“序列”,然后选择你原来原来定义菜名和价格那个表的菜名区域,ok了。
2、当输入菜名显示价格,就要用到VLOOKUP函数,在需要显示菜价的单元格上输入公式:
=vlookup(鼠标点左边菜名单元格, 鼠标选定义菜价的表单的数据区域然后按F4建改为全带$符号的, 手工输入需要提取的列在第一页数据区域中第几列这个数字, false) 然后回车。
//我错了。我忽然看到这个问题是在娱乐下的分类,难怪没有代码模式。我明天或后天再把这个完善下吧。另外先上传一张运行后生成的图片。有什么要求再提。
//好纠结啊,怎么没有代码模式呢?之前还有的。说明一下,上传的图片是程序里要用的背景图,你可以任意的换。另外,输出的内容可以有多种样式,你自己改代码喽。我只是简单的输出在图片上。 唉,这代码的样式,我看着都难过。你放Eclipse里排下版吧。有什么问题或要求再告诉我。
import java.awt.Color
import java.awt.Font
import java.awt.Graphics
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.image.BufferedImage
import java.io.File
import java.io.IOException
import javax.imageio.ImageIO
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JTextField
@SuppressWarnings("serial")
public class CreateCard extends JFrame implements ActionListener{
private JTextField nameInput //姓名输入框
private JTextField addressInput //地址输入框
private JTextField noInput //编号输入框
private JLabel jLabel1
private JLabel jLabel2
private JLabel jLabel3
private JButton submit //提交按钮
public CreateCard() {
{
this.setLayout(null)
}
{
nameInput = new JTextField()
this.add(nameInput, "Center")
nameInput.setBounds(160, 50, 128, 25)
}
{
jLabel1 = new JLabel()
this.add(jLabel1)
jLabel1.setText("姓名")
jLabel1.setBounds(86, 47, 56, 29)
}
{
jLabel2 = new JLabel()
this.add(jLabel2)
jLabel2.setText("地址")
jLabel2.setBounds(86, 111, 56, 15)
}
{
jLabel3 = new JLabel()
this.add(jLabel3)
jLabel3.setText("编号")
jLabel3.setBounds(86, 160, 56, 15)
}
{
addressInput = new JTextField()
this.add(addressInput)
addressInput.setBounds(160, 108, 128, 22)
}
{
noInput = new JTextField()
this.add(noInput)
noInput.setBounds(160, 157, 128, 22)
}
{
submit = new JButton()
this.add(submit)
submit.setText("生成卡片")
submit.setBounds(120, 218, 115, 22)
submit.addActionListener(this)
}
{
this.setSize(422, 314)
this.setTitle("生成卡片")
this.setDefaultCloseOperation(3)
this.setVisible(true)
}
}
public void actionPerformed(ActionEvent e) {
createPic()
}
/**
* 此方法用于生成最终图片。
* 注:背景图片路径为 src/1.jpg
* 最终生成图片的路径为src/2.jpg
*/
private void createPic() {
BufferedImage bi = new BufferedImage(
800,600,BufferedImage.TYPE_INT_RGB) //800 600 为我选择的背景图片的大小
Graphics g = bi.getGraphics() //获得画刷
BufferedImage image = null
try {
image = ImageIO.read(new File("src/1.jpg")) //读取背景图片
g.setColor(Color.BLACK) //设置画刷颜色
g.setFont(new Font("微软雅黑",Font.CENTER_BASELINE,28)) //设置画刷字体
//-----以下为绘制内容------
g.drawImage(image, 0, 0, null)
g.drawString("名字:", 100, 200)
g.drawString(nameInput.getText(), 250, 200)
g.drawString("地址:", 100, 300)
g.drawString(addressInput.getText(), 250, 300)
g.drawString("编号:", 100, 400)
g.drawString(noInput.getText(), 250, 400)
//-----绘制结束,生成图片,保存为src/2.jpg------
ImageIO.write(bi, "jpeg", new File("src/2.jpg"))
} catch (IOException e) {
e.printStackTrace()
}
}
public static void main(String[] args) {
new CreateCard()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)