📄 newbagapplet.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class newBagApplet extends JApplet
implements ActionListener{
private JTextField jtfweight=new JTextField();
private JTextField jtfvalue=new JTextField();
private JTextField jtfcontain=new JTextField();
private JTextField jtfnumber=new JTextField();
private JTextField jtfsumValue=new JTextField();
private JButton jbtComputeValue=new JButton("运行");
public void init(){
jtfsumValue.setEditable(false);
jtfweight.setHorizontalAlignment(JTextField.LEFT);
jtfvalue.setHorizontalAlignment(JTextField.LEFT);
jtfcontain.setHorizontalAlignment(JTextField.RIGHT);
jtfnumber.setHorizontalAlignment(JTextField.RIGHT);
jtfsumValue.setHorizontalAlignment(JTextField.RIGHT);
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(5,2));
p1.add(new JLabel("输入物品体积(中间逗号隔开)"));
p1.add(jtfweight);
p1.add(new JLabel("输入物品价值(中间逗号隔开)"));
p1.add(jtfvalue);
p1.add(new JLabel("输入背包容积"));
p1.add(jtfcontain);
p1.add(new JLabel("输入物品数"));
p1.add(jtfnumber);
p1.add(new JLabel("最大价值"));
p1.add(jtfsumValue);
p1.setBorder(new TitledBorder("背包问题"));
JPanel p2=new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
p2.add(jbtComputeValue);
getContentPane().add(p1,BorderLayout.CENTER);
getContentPane().add(p2,BorderLayout.SOUTH);
jbtComputeValue.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jbtComputeValue){
char[]charsw=jtfweight.getText().toCharArray();
char[]charsv=jtfvalue.getText().toCharArray();
char[]charsw1=new char[charsw.length+2];
char[]charsv1=new char[charsv.length+2];
for(int i=charsw.length+1;i>1;i--)
charsw1[i]=charsw[i-2];
for(int j=charsv.length+1;j>1;j--)
charsv1[j]=charsv[j-2];
charsw1[0]='0';charsw1[1]=',';
charsv1[0]='0';charsv1[1]=',';
//int[]v=jtfvalue.getText();
/*
int []w={80,82,85,70,72,70,
66,50,55,25,50,55,
40,48,50,32,22,60,
30,32,40,38,35,32,
25,28,30,22,50,30,
45,30,60,50,20,65,
20,25,30,10,20,25,
15,10,10,10,4,4,2,1};
int []v={220,208,198,192,180,180,
165,162,160,158,155,130,
125,122,120,118,115,110,
105,101,100,100,98,96,
95,90,88,82,80,77,
75,73,70,69,66,65,
63,60,58,56,50,30,
20,15,10,8,5,3,1,1};
*/
//int n=50;
//int c=1000;
int countw,countv;
int c=Integer.parseInt(jtfcontain.getText());
int n=Integer.parseInt(jtfnumber.getText());
int []take=new int[n+1];
int [][]m=new int[n+1][c+1];
newBag newbag=new newBag();
countw=newbag.count(charsw1);
countv=newbag.count(charsv1);
int[]w=new int[countw+1];
int[]v=new int[countv+1];
newbag.charToInt(charsw1,w);
newbag.charToInt(charsv1,v);
m=newbag.putbag(w,v,c,n);
newbag.putin(m,w,c,n,take);
newbag.display(w,v,take);
jtfsumValue.setText(""+(int)m[n][c]);
}
}
public static void main(String[]args){
JFrame frame=new JFrame("Running a program");
newBagApplet bagapplet=new newBagApplet();
frame.getContentPane().add(bagapplet,BorderLayout.CENTER);
bagapplet.init();
bagapplet.start();
frame.setSize(400,300);
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -