每当从JComboBox中选择一个项目时,我都试图从图像文件夹中将图标设置为JLabel.JComboBox中的项目名称和文件夹中图像的名称相同.因此,无论何时从JComboBox中选择一个项目,都应将具有相同名称的相应图像设置为JLabel的图标.我想做这样的事情.
private void cmb_movieselectPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){
updateLabel(cmb_moviename.getSelectedItem().toString());
}
protected void updateLabel(String name) {
ImageIcon icon = createImageIcon("C:\\Users\\xerof_000\\Pictures\\tmspictures\\" + name + ".jpg");
if(icon != null){
Image img = icon.getImage();
Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(), java.awt.Image.SCALE_SMOOTH);
icon = new ImageIcon(newimg);
lbl_pic.setIcon(icon);
lbl_pic.setText(null);
}
else{
lbl_pic.setText("Image not found");
lbl_pic.setIcon(null);
}
}
protected static ImageIcon createImageIcon(String path) {
URL imgURL;
imgURL = NowShowing.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为问题出现在"C:\ Users\xerof_000\Pictures\tmspictures \"中我尝试使用"C:/ Users/xerof_000/Pictures/tmspictures /",但即使这样也行不通.无论我做什么,它只在JLabel上显示"Image not found".
我试图从Java swing应用程序中保存MySQL数据库中的图像.我正在使用JFileChsoser来获取图像的路径.然后转换文件,以便它可以保存在BLOB类型的MySQL列中.但是我尝试保存的每个图像都没有正确保存或正确转换.有人能告诉我这里我做错了什么吗?
private void btn_choosepicActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser picchooser = new JFileChooser();
picchooser.setDialogTitle("Select Image");
picchooser.showOpenDialog(null);
File pic=picchooser.getSelectedFile();
path= pic.getAbsolutePath();
txt_path.setText(path.replace('\\','/'));
try{
File image = new File(path);
FileInputStream fis = new FileInputStream(image);
ByteArrayOutputStream baos= new ByteArrayOutputStream();
byte[] buff = new byte[1024];
for(int readNum; (readNum=fis.read(buff)) !=-1 ; ){
baos.write(buff,0,readNum);
}
userimage=baos.toByteArray();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在此之后将其保存到数据库中.
private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {
String user= txt_username.getText();
try{
String sql="insert into imgtst (username,image) values ('"+user+"','"+userimage+"')";
pst=con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Saved");
}
catch(Exception e){ …Run Code Online (Sandbox Code Playgroud) 为了使我的程序更短,我使用数组和循环来完成一项任务,但我遇到了问题.我不确定我是在初始化数组错误还是错误地访问它.我正在初始化一个40个JCheckBoxes的数组.
JCheckBox[] seatz={chk_a1,chk_a2,chk_a3,chk_a4,chk_a5,chk_a6,chk_a7,chk_a8,chk_a9,chk_a10,chk_b1,chk_b2...chk_d10};
Run Code Online (Sandbox Code Playgroud)
每当更改JCheckBox的项状态时,seatChecker()都会调用该方法
public void seatChecker(JCheckBox chkbox) {
if(chkbox.isSelected()){
chkboxcount=chkboxcount+1;
} else {
chkboxcount=chkboxcount-1;
}
if(chkboxcount>=totalseats){
disableSeats();
} else {
enableSeats();
}
}
Run Code Online (Sandbox Code Playgroud)
如果计数达到某个限制,我将禁用JCheckBoxes,否则启用它们.这两种方法的代码是
public void disableSeats() {
for(int x = 0; x < 40 ; x++) {
if(seatz[x].isSelected()==false){
seatz[x].setEnabled(false);
}
}
}
public void enableSeats() {
for(int x = 0; x < 40 ; x++) {
seatz[x].setEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了错误Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException的if(seatz[x].isSelected()==false)和seatz[x].setEnabled(true)什么是我在这里做错了吗?
我必须编写一个程序来说明指针与数组和函数的用法.
#include <stdio.h>
#include <conio.h>
#define ROWS 3
#define COLS 4
void print(int rows, int cols, int *matrix);
void main(void)
{
int a[ROWS*COLS],i;
for(i=0;i<ROWS*COLS;i++)
{
a[i]=i+1;
}
print(ROWS,COLS,a);
getch();
}
void print(int rows, int cols, int *matrix)
{
int i,j,*p=matrix;
for(i=0;i<rows;i++)
{
for(j=0;j<cols;j++)
{
printf("%3d",*(p+(i*cols)+j));
}
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
上面的程序打印出一个预定义行和列的矩阵.我想修改程序,以便用户输入行和列.
#include <stdio.h>
#include <conio.h>
void print(int rows, int cols, int *matrix);
void main(void)
{
int ROWS,COLS,a[ROWS*COLS],i;
printf("Enter the number of rows: ");
scanf("%d",ROWS);
printf("\nEnter the number of columns: ");
scanf("%d",COLS); …Run Code Online (Sandbox Code Playgroud) 我试图使用此代码将当前日期和第二天的日期放在JComboBox中
private void dateCombo(){
Calendar cal = new GregorianCalendar();
int month =cal.get(Calendar.MONTH);
int year =cal.get(Calendar.YEAR);
int day =cal.get(Calendar.DAY_OF_MONTH);
cmb_date.addItem(+year+"-"+(month+1)+"-"+day);
cmb_date.addItem(+year+"-"+(month+1)+"-"+(day+1));
}
Run Code Online (Sandbox Code Playgroud)
但它以"yyyy-md"格式显示日期,我希望它以'yyyy-mm-dd'格式显示.
我想我可以用
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
txt_date.setText(sdf.format(date));
Run Code Online (Sandbox Code Playgroud)
以'yyyy-mm-dd'格式获取当前日期,但如何处理第二天的日期?