用showOpenDialog()弹出的窗口总被浏览器挡住

chrome浏览器、win7.
web工程里用以下语句弹出窗口
JFileChooser jf = new JFileChooser();
jf.showOpenDialog(null);

但是弹出来的窗口总被浏览器挡住,谁知道为什么?

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA怎么做点击按钮促发事件弹出浏览窗口选择excel文件读取,并显示到另外一个界面上,请给出主要代码

JAVA怎么做点击按钮促发事件弹出浏览窗口选择excel文件读取,并显示到另外一个界面上?package com.excel; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.swing.JTextArea; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * 解析Excel的类 */ public class ExcelOperate { private JTextArea area; private String fileName; /** * 构造方法传值 * * @param area * 显示Excel内容的位置 * @param fileName * Excel文件名 */ public ExcelOperate(JTextArea area, String fileName) { this.area = area; this.fileName = fileName; } /** * 解析Excel文件 */ public void parseExcel() { File file = new File(fileName); String[][] result = null; try { result = getData(file, 1); } catch (IOException e) { e.printStackTrace(); } int rowLength = result.length; for (int i = 0; i < rowLength; i++) { for (int j = 0; j < result[i].length; j++) { area.append(result[i][j] + "\t\t"); } area.append("\n"); } } /** * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1 * @return 读出的Excel中数据的内容 * @throws FileNotFoundException * @throws IOException */ public static String[][] getData(File file, int ignoreRows) throws FileNotFoundException, IOException { List<String[]> result = new ArrayList<String[]>(); int rowSize = 0; BufferedInputStream in = new BufferedInputStream(new FileInputStream( file)); // 打开HSSFWorkbook POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFCell cell = null; for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) { HSSFSheet st = wb.getSheetAt(sheetIndex); // 第一行为标题,不取 for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) { HSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = false; for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) { String value = ""; cell = row.getCell(columnIndex); if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = new SimpleDateFormat("yyyy-MM-dd") .format(date); } else { value = ""; } } else { value = new DecimalFormat("0").format(cell .getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = cell.getStringCellValue(); } else { value = cell.getNumericCellValue() + ""; } break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: value = ""; break; case HSSFCell.CELL_TYPE_BOOLEAN: value = (cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: value = ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = true; } if (hasValue) { result.add(values); } } } in.close(); String[][] returnArray = new String[result.size()][rowSize]; for (int i = 0; i < returnArray.length; i++) { returnArray[i] = (String[]) result.get(i); } return returnArray; } /** * 去掉字符串右边的空格 * * @param str * 要处理的字符串 * @return 处理后的字符串 */ public static String rightTrim(String str) { if (str == null) { return ""; } int length = str.length(); for (int i = length - 1; i >= 0; i--) { if (str.charAt(i) != 0x20) { break; } length--; } return str.substring(0, length); } } ------------------------------------------------------------------------------------------ package com.excel; import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.UIManager; import javax.swing.filechooser.FileNameExtensionFilter; /** * 主界面,按钮响应事件,文本域输出Excel内容 */ public class OpenExcel extends JFrame implements ActionListener { private JButton button; private JScrollPane pane; private JTextArea area; public OpenExcel() { super("解析Excel"); button = new JButton("点我选择Excel文件"); button.addActionListener(this); area = new JTextArea(); pane = new JScrollPane(area); this.add(button, BorderLayout.NORTH); this.add(pane); this.setSize(300, 300); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } // 按钮事件 public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser();// 文件选择对话框 chooser.setAcceptAllFileFilterUsed(false);// 取消所有文件过滤项 chooser.setFileFilter(new FileNameExtensionFilter("Excel文件", "xls"));// 设置只过滤扩展名为.xls的Excel文件 int i = chooser.showOpenDialog(this);// 打开窗口 if (i == JFileChooser.APPROVE_OPTION) { this.setLocation(0, 0); this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); new ExcelOperate(area, chooser.getSelectedFile().getAbsolutePath()) .parseExcel(); } } public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); new OpenExcel(); } }我的代码是这样的,但是界面显示不出来,是什么问题?![图片](https://img-ask.csdn.net/upload/201706/09/1496974828_84401.jpg)

JFileChooser窗口如何前置

在前台页面调用JFileChooser窗口,服务器启动之后第一次不显示在页面前面,关掉后点击又正常了代码贴上:public class SwingTest { public static void actionPerformed() { Frame frame=new Frame(); frame.setAlwaysOnTop(true); JFileChooser chooser = new JFileChooser(); //设置为多选 chooser.setMultiSelectionEnabled(true); //能够选择文件夹和文件 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int result = chooser.showOpenDialog(new JPanel()); if (result == JFileChooser.APPROVE_OPTION) { File[] files = chooser.getSelectedFiles(); List<String> list=new ArrayList<String>(); String dir = null; for (File file2 : files) { dir = chooser.getCurrentDirectory().toString(); String fileName = file2.getName(); // 选择文件后,弹出文件全路径 /*JOptionPane.showConfirmDialog(null, dir + "\\" + fileName, "选择的文件", JOptionPane.YES_NO_CANCEL_OPTION);*/ String path=dir + "\\" + fileName; list.add(path); } } } public static void main(String args[]) { actionPerformed(); } }

确认对话框showConfirmDialog()

if (**JOptionPane.showConfirmDialog(Mainfram.this, "确定退出吗?")==_JOptionPane.OK_OPTION_**) { System.exit(0);; }这句话中加粗部分怎么理解?斜体部分的意思?求大神指导!!!

JAVA图片浏览器的音乐播放,在切换下一首歌的时候,当前的歌还在播放,怎么解决?

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseListener; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine; import javax.sound.sampled.UnsupportedAudioFileException; import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; public class HOME extends JFrame implements ActionListener, ListSelectionListener { double height; JLabel imageview = new JLabel(); JButton b1 = new JButton(); JButton profile_photo = new JButton(); JButton switch1 = new JButton("<"); JButton switch2 = new JButton(">"); JButton First = new JButton("首张"); JButton Last = new JButton("末张"); ImageIcon icon1 = null; ImageIcon icon2 = null; JPanel North = new JPanel(); JPanel South = new JPanel(); JPanel Center = new JPanel(); JPanel West = new JPanel(); JPanel East = new JPanel(); JFileChooser chooser = new JFileChooser(); JMenuBar menuBar = new JMenuBar(); JTextArea phototext = new JTextArea(); String photo_name; // 文件列表 String Path = "./image"; File file = new File(Path); File[] list = file.listFiles(); int index = 0; /// 音乐播放 //音乐文件列表 String musicPath = "./music"; File musicfile = new File(musicPath); File[] musiclist = musicfile.listFiles(); int index_music = 0; JButton play = new JButton("播放"); JButton stop = new JButton("停止"); JButton playlast = new JButton("|<"); JButton playnext = new JButton(">|"); boolean isPlaying = false; boolean isRestart = false; Audio audio = new Audio(); // 菜单项 JMenuItem choosephoto = new JMenuItem("打开图片"); //图片列表 private String[] lists = { "111","222","333","444","555","666","777","888","999"}; JList photolist = new JList(list); public HOME() { // 框架设置 setTitle("图片浏览器"); setLocation(300, 100); setSize(1300, 900); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); setLayout(new BorderLayout()); //图片列表 photolist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane scrollpane = new JScrollPane(photolist); scrollpane .setPreferredSize(new Dimension(100,500)); //滚动条的大小即可调整列表长宽,如果想再加入一条横向滚动条,可设置列表的preferredSize // 组件添加 North.setLayout(new BorderLayout()); // 此处没有设置South的布局,因为设置后再将South面板放入框架中时,发现三个按钮无法全部加入,只能加入最后一个 Center.setLayout(new BorderLayout()); North.add(menuBar); add(North, BorderLayout.NORTH); Center.add(imageview); add(Center, BorderLayout.CENTER); West.add(scrollpane); //此处只需加入滚动条即可。不需要再加入photolist South.add(play); South.add(stop); South.add(playlast); South.add(playnext); South.add(switch1); South.add(switch2); South.add(First); South.add(Last); add(South, BorderLayout.SOUTH); add(East, BorderLayout.EAST); add(West, BorderLayout.WEST); // 监听器添加 switch1.addActionListener(this); switch2.addActionListener(this); First.addActionListener(this); Last.addActionListener(this); play.addActionListener(this); stop.addActionListener(this); playlast.addActionListener(this); playnext.addActionListener(this); photolist.addListSelectionListener(this); // 图像设置 // 头像/ ImageIcon image_local1 = new ImageIcon("./image/头像.jpg"); Image imageget1 = image_local1.getImage(); Image finalimage1 = imageget1.getScaledInstance(100, 100, Image.SCALE_AREA_AVERAGING); icon1 = new ImageIcon(finalimage1); // 图片/ // 组件设置 lb1.setFont(new Font("宋体", Font.BOLD, 20)); b1.setIcon(icon1); switch1.setVisible(true); switch2.setVisible(true); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); phototext.setFont(new Font("宋体", Font.BOLD, 20)); phototext.setEditable(false); Menu(); // 线程启动 audio.start(); isPlaying = true; } public void Menu() { this.add(menuBar, BorderLayout.NORTH); this.setJMenuBar(menuBar); JMenu file = new JMenu("文件"); JMenuItem photolist = new JMenuItem("图片列表"); menuBar.add(file); menuBar.add(photolist); menuBar.add(phototext); menuBar.add(b1); file.add(choosephoto); setVisible(true); // 文件选择 chooser.setCurrentDirectory(new File("./image")); choosephoto.addActionListener(this); } @Override public void valueChanged(ListSelectionEvent e) { if(e.getSource() == photolist) { int index = photolist.getLeadSelectionIndex(); phototext.setText(""); photo_name = list[index].getPath(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(),Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(list[index].getName()); String filename = file.getName(); double size = (file.length() / 1024.00); System.out.print(file.length()); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); } } private final Set<Long> THREADS = new HashSet<>(); public void someMethod () { if (THREADS.contains(Thread.currentThread().getId())) { throw new RuntimeException("该线程不能再调用这个方法"); } THREADS.add(Thread.currentThread().getId()); // 方法内容 } public void actionPerformed(ActionEvent e) { Runnable action = () ->{ if (e.getSource() == switch1) { while (index <= list.length) { if (index == 0) { JOptionPane.showMessageDialog(West, "已经是第一张图", "提示", JOptionPane.WARNING_MESSAGE); break; } index--; phototext.setText(""); photo_name = list[index].getPath(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(), Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(list[index].getName()); String filename = file.getName(); double size = (file.length() / 1024.00); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); break; } } if (e.getSource() == switch2) { while (index <= list.length) { if (index == list.length) { JOptionPane.showMessageDialog(West, "已经是最后一张图", "提示", JOptionPane.WARNING_MESSAGE); } phototext.setText(""); photo_name = list[index].getPath(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(), Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(list[index].getName()); String filename = file.getName(); double size = (file.length() / 1024.00); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); index++; break; } } if(e.getSource() == First) { index=0; phototext.setText(""); photo_name = list[index].getPath(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(), Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(list[index].getName()); String filename = file.getName(); double size = (file.length() / 1024.00); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); } if(e.getSource() == Last) { index=list.length-1; phototext.setText(""); photo_name = list[index].getPath(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(), Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(list[index].getName()); String filename = file.getName(); double size = (file.length() / 1024.00); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); } if (e.getActionCommand() == "打开图片") { int choose = chooser.showOpenDialog(null); if (choose == JFileChooser.APPROVE_OPTION) { phototext.setText(""); photo_name = chooser.getSelectedFile().getName(); ImageIcon image_local2 = new ImageIcon(photo_name); Image imageget2 = image_local2.getImage(); Image finalimage2 = imageget2.getScaledInstance(Center.getWidth(), Center.getHeight(), Image.SCALE_AREA_AVERAGING); icon2 = new ImageIcon(finalimage2); imageview.setIcon(icon2); imageview.setBounds(50, 50, 500, 500); File file = new File(chooser.getSelectedFile().getName()); String filename = file.getName(); double size = (file.length() / 1024.00); phototext.setText(filename + " (" + String.valueOf(size) + "KB)"); } } if (e.getActionCommand() == "播放") { String filePath = "./music"; try { System.out.print("运行了"); Runnable play = ( ) ->{ audio.run(); }; Thread t1 = new Thread(play); t1.start(); isPlaying = true; } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } } if (e.getSource() == stop) { try { System.out.print("停止了"); isPlaying = false; isRestart = false; } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } } if (e.getSource() == playnext) { try { System.out.print("下一个"); isPlaying = false; Runnable r =() ->{ try { someMethod(); index_music++; isRestart = true; audio.restart(); } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }; Thread t = new Thread(r); t.start(); } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } } if (e.getSource() == playlast) { try { if(index_music == 0) { JOptionPane.showMessageDialog(West, "已经是第一首背景音乐", "提示", JOptionPane.WARNING_MESSAGE); } isPlaying = false; isRestart = true; } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } } }; Thread act = new Thread(action); act.start(); } public class Audio extends Thread { public Audio() { } public void run() { try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println(e.toString()); } if (isPlaying) { try { System.out.print("启动了"); player(); } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) { e.printStackTrace(); } } } public void restart() throws UnsupportedAudioFileException, IOException, LineUnavailableException { if(isRestart) { System.out.print("测试了~?"); isPlaying =true; player(); } } // 取得文件输入流 private void player() throws UnsupportedAudioFileException, IOException, LineUnavailableException { AudioInputStream audioInputStream;// 文件流 AudioFormat audioFormat;// 文件格式 SourceDataLine sourceDataLine;// 输出设备 String musicname = musiclist[index_music].getName(); File file = new File("./music/"+musicname); audioInputStream = AudioSystem.getAudioInputStream(file); audioFormat = audioInputStream.getFormat(); // 转换文件编码 if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) { audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, audioFormat.getSampleRate(), 16, audioFormat.getChannels(), audioFormat.getChannels() * 2, audioFormat.getSampleRate(), false); audioInputStream = AudioSystem.getAudioInputStream(audioFormat, audioInputStream); } // 打开输出设备 DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat, AudioSystem.NOT_SPECIFIED); sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); sourceDataLine.open(audioFormat); // 打开具有指定格式的行,这样可以使行获得所有所需的系统资源并变得可操作 sourceDataLine.start(); // 允许某一数据行执行数据I/O byte tempBuffer[] = new byte[320]; try { int cnt; // 读取数据到缓存区 // 从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。 // return: 读入缓冲区的总字节数;如果因为已经到达流末尾而不再有更多数据,则返回-1 while ((cnt = audioInputStream.read(tempBuffer, 0,tempBuffer.length)) != -1 &&isPlaying) { if (cnt > 0) { // 写入缓存数据 sourceDataLine.write(tempBuffer, 0, cnt); // 通过此源数据行将音频数据写入混频器 } } // Block等待临时数据被输出为空 // 通过在清空数据行的内部缓冲区之前继续数据I/O,排空数据行中的列队数据 sourceDataLine.drain(); // 关闭行,指示可以释放的该行使用的所有系统资源。如果此操作成功,则将行标记为 closed,并给行的侦听器指派一个 CLOSE 事件。 sourceDataLine.close(); } catch (Exception e) { e.printStackTrace(); System.exit(0); } } } public static void main(String[] args) { Runnable h = () ->{ HOME home = new HOME(); }; Thread t = new Thread(h); t.start(); } } ``` ```playnext那一部分是切下一首歌,但是切了后当前的歌曲仍在播放,怎么解决

[java]BufferedReader的问题 新手 求大神给下面一点代码加注释 跪谢!!

package FastReader; import java.io.*; /* * 缓冲读入,优化文件读入效率 */ public class BufferRead { public static String bufferRead(String filename) throws IOException { BufferedReader in = new BufferedReader(new FileReader(filename)); String s; StringBuilder sb = new StringBuilder(); while ((s = in.readLine()) != null) { sb.append(s); sb.append("\n"); } in.close(); return sb.toString(); } }

java,在使用jfilechooser这个类的时候,报错下面这个提示

Untested Windows version 10.0 detected! Untested Windows version 10.0 detected! 上面是错误 几天前还没有报错,不知道为什么突然就出现了这样的错误。虽然不影响使用,但是很奇怪为什么会这样 import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.filechooser.FileNameExtensionFilter; public class FileChooseDemo { JPanel panel ; JFrame frame ; JButton btn ; int rs ; public FileChooseDemo () { frame = new JFrame () ; panel = new JPanel () ; btn = new JButton ("click") ; btn.addActionListener(new ActionListener () { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub JFileChooser jfc = new JFileChooser () ; rs = jfc.showOpenDialog(frame) ; FileNameExtensionFilter fnef = new FileNameExtensionFilter ("jpg,png","jpg","png") ; jfc.setFileFilter(fnef) ; if(rs == JFileChooser.APPROVE_OPTION) { System.out.println(jfc.getSelectedFile().getName()) ; } } }); panel.add(btn) ; frame.add(panel) ; frame.setPreferredSize(new Dimension(100,100)) ; frame.pack() ; frame.setResizable(false) ; frame.setLocationRelativeTo(null) ; frame.setVisible (true) ; } public static void main(String[] args) { // TODO Auto-generated method stub new FileChooseDemo () ; } } 添加包名就可以运行了

electron-react 通过dialog获得js文件地址如何引用

我想用electron-react做一个框架得工具,需要导入外部得js文件,我通过dialog.showOpenDialog获取到了js得地址,但是无法用require引用这个文件,是哪里得问题 ![图片说明](https://img-ask.csdn.net/upload/202002/05/1580884946_491711.png) ![图片说明](https://img-ask.csdn.net/upload/202002/05/1580884982_999198.png)

electron,分支页面无法实现require功能

此问题悬赏金(10元),帮助我解决问题即可获得,联系方式:1109039558(QQ) 我写了一个electron文件,文件中包含index.html(主)和test.html 单独运行test页面,功能没有任何问题 但是从index页面进入test页面,test页面无法正常运行. 原因可能如下,我在test导入bcli.js库,这个js是我自己写的,里面有一些函数,如check123 opening123等等 > ``` <script> require("./js/electron/bcli.js"); </script> ``` 我上网上查了好多资料,都没有任何用,包括下面这个 ``` webPreferences: { nodeIntegration: true } ``` 我现在很无奈,求各位大佬帮帮我,错误问题如下,其中check123,我定义在了bcli.js中. ``` Uncaught ReferenceError: check123 is not defined ``` 刚才一位朋友提出的建议,我试了,代码如下:上面两行代码没有注释时,结果可以运行,可是我将上面两行代码改成下面两行,结果运行不了. ``` // const $ = require('jquery'); // jQuery // const shell = require('shelljs'); // cli executor import {$} from require('jquery'); import {shell} from require('shelljs'); ``` 可能是我理解有问题,上面的问题,我想在描述一下,我普通的function可以运行,可是当我在支页面运行我写的代码,就运行不了,我把我写的代码附上去: ``` // libraries const os = require('os'); // operating system const path = require('path'); // path joiner const $ = require('jquery'); // jQuery const shell = require('shelljs'); // cli executor // global varialbes, DO NOT CHANGE let executing = false; let imgNotFound = false; let imgID = "#shrimp"; var fs=require("fs") const {dialog}=require('electron').remote opendialog=function(){ if (executing) return; let imgPathes = []; dialog.showOpenDialog({ title:"选择文件:", filters: [ { name: 'Images', extensions: ['jpg', 'png', 'bmp'] }, ] },result => { if (executing) return; // do nothing if we are already executing the files // otherwise try to get pdf pathes user has dropped to us let imgPathes = []; imgPathes.push(result); fs.writeFile("/home/tju/桌面/abcd28/path1.txt",result,(err,data)=>{ if(err) throw err; }) let len = imgPathes.length; var i=0; if (len >= 1) { // if we got 1 or more pdf pathes, start executing console.log(imgPathes[i]); execute(imgPathes[i]); i=i+1; } else { console.error("Need exact 1 image"); } }) } function rmImg(imgPath) { let str1=`cp -r `+ imgPath + ` `+` /home/tju/桌面/xuejie/train/SRGAN_CL/input/new.jpg`; fs.writeFile("./path.txt",str1,(err,data)=>{ if(err) throw err; }) let str=str1 +` && cd /home/tju/桌面/xuejie/train/SRGAN_CL && python test2.py --path1=/home/tju/桌面/xuejie/train/SRGAN_CL/input/new.jpg`; fs.writeFile("/home/tju/桌面/cmd.txt",str,(err,data)=>{ if(err) throw err; }) let cmd = str; shell.exec(cmd, {silent:false}, (code, stdout, stderr)=>{ if(code === 0){ console.log({code: code, stdout: stdout, stderr: stderr}); }else{ console.error({code: code, stdout: stdout, stderr: stderr}); } }); }; $('#refresh').click(()=>{ // $('#input1').load(location.href+'#input1'); setTimeout(() => { javascript:location.reload(); }, 10000); }); async function execute(imgPath) { executing = true; // tell ui we are doing executing! try { let result = await rmImg(imgPath); console.log(result); } catch (err) { // will catch >>first<< error in the try block console.error(error); } executing = false; // tell ui the shrink is done } check123=function(){ var textarea=this.document.querySelector('#textarea'); fs.readFile('/home/tju/桌面/abcd28/path1.txt','utf-8',function(err,data){ if(err){ console.error(err); } else{ textarea.innerHTML= data; } }); var textarea1=this.document.querySelector('#textarea1'); fs.readFile('/home/tju/桌面/xuejie/train/SRGAN_CL/sta_2019_16_1080/shuchu.csv','utf-8',function(err,data){ if(err){ console.error(err); } else{ textarea1.innerHTML= data; } }); } console.log("script loaded"); ```

如何写一个完整的java视频播放器?诚望高手们指点!

高手们,你们好。我在网上搜了几个java视频播放器的代码,带是均不能正常运行。我不知道是怎么回事,我想请教下你们,同时如果你们有完整的java视频播放器代码,能否提供一份?望指导! 我的代码为: package com.bird.jmf; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swing.*; import javax.media.*; // 视频播放程序 public class VideoPlayDemo extends JFrame { private Player player; // 播放器对象 private Component visualMedia; // 视频显示组件 private Component mediaControl; // 视频播放控制组件 private Container container; // 主容器 private File mediaFile; //媒体文件 private URL fileURL; //媒体文件URL地址 public VideoPlayDemo() { // 构造函数 super("视频播放程序"); //调用父类构造函数 container = getContentPane(); //得到窗口容器 JToolBar toobar = new JToolBar(); //实例化工具栏 JButton openFile = new JButton("打开媒体文件"); //实例化按钮 toobar.add(openFile); //增加按钮到工具栏 JButton openURL = new JButton("打开网络地址"); toobar.add(openURL); container.add(toobar, BorderLayout.NORTH); //设置工具栏 openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理 public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器 fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//设置文件打开模式为仅打开文件 int result = fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框 if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为 mediaFile = fileChooser.getSelectedFile(); //得到选择的文件 } if (mediaFile != null) { try { fileURL = mediaFile.toURL(); //得到文件的URL地址 } catch (MalformedURLException ex) { ex.printStackTrace(); //输出错误信息 showMessage("打开错误"); //显示错误信息 } startPlayer(fileURL.toString()); //开始播放打开的文件 } } }); openURL.addActionListener(new ActionListener() { //打开URL按钮事件处理 public void actionPerformed(ActionEvent event) { String addressName =JOptionPane.showInputDialog(VideoPlayDemo.this, "输入URL地址"); if (addressName != null) startPlayer(addressName); //开始播放打开的URL } }); Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE); setSize(300, 200); //设置窗口大小 setVisible(true); //设置窗口为可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 } //初始化播放器 public void startPlayer(String mediaLocation) { if (player != null) //如果播放器非空则移去先前的播放器组件 if (visualMedia != null) container.remove(visualMedia); //如果对象visualMedia非空则移去 if (mediaControl != null) { container.remove(mediaControl); //如果对象mediaControl非空则移去 player.close(); //关闭播放器 } MediaLocator mediaLocator = new MediaLocator(mediaLocation); //媒体定位器 if (mediaLocator == null) { showMessage("打开文件错误"); //显示错误信息 return; } try { player = Manager.createPlayer(mediaLocator); //得到播放器实例 player.addControllerListener(new PlayerEventHandler()); //增加播放控制器 player.realize(); } catch (Exception ex) { ex.printStackTrace(); showMessage("打开错误"); //显示错误信息 } } //取得媒体组件 //Download by http://www.codefans.net public void getMediaComponents() { visualMedia = player.getVisualComponent(); //取得视频显示组件 //如果对象visualMedia非空则加入到窗口内容窗格 if (visualMedia != null) { container.add(visualMedia, BorderLayout.CENTER); pack(); } mediaControl = player.getControlPanelComponent(); //取得播放控制组件 //如果对象visualMedia非空则加入到窗口内容窗格 if (mediaControl != null) container.add(mediaControl, BorderLayout.SOUTH); } //播放器事件处理 private class PlayerEventHandler extends ControllerAdapter { public void realizeComplete(RealizeCompleteEvent realizeDoneEvent) { player.prefetch(); //预取媒体数据 } //完成预取媒体数据后,开始播放媒体 public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent) { getMediaComponents(); validate(); player.start(); //开始播放媒体 } //如果媒体播放完毕,重新设置媒体时间并停止媒体播放器 public void endOfMedia(EndOfMediaEvent mediaEndEvent) { player.setMediaTime(new Time(0)); //重新设置媒体时间 player.stop(); // 停止媒体播放 } } public void showMessage(String s) { JOptionPane.showMessageDialog(this, s); //显示提示信息 } public static void main(String args[]) { new VideoPlayDemo(); } }

java如何进去选择框选择一个excel并将里面的数据显示到一个界面上

package com.excel; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.swing.JTextArea; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * 解析Excel的类 */ public class ExcelOperate { private JTextArea area; private String fileName; /** * 构造方法传值 * * @param area * 显示Excel内容的位置 * @param fileName * Excel文件名 */ public ExcelOperate(JTextArea area, String fileName) { this.area = area; this.fileName = fileName; } /** * 解析Excel文件 */ public void parseExcel() { File file = new File(fileName); String[][] result = null; try { result = getData(file, 1); } catch (IOException e) { e.printStackTrace(); } int rowLength = result.length; for (int i = 0; i < rowLength; i++) { for (int j = 0; j < result[i].length; j++) { area.append(result[i][j] + "\t\t"); } area.append("\n"); } } /** * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1 * @return 读出的Excel中数据的内容 * @throws FileNotFoundException * @throws IOException */ public static String[][] getData(File file, int ignoreRows) throws FileNotFoundException, IOException { List<String[]> result = new ArrayList<String[]>(); int rowSize = 0; BufferedInputStream in = new BufferedInputStream(new FileInputStream( file)); // 打开HSSFWorkbook POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFCell cell = null; for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) { HSSFSheet st = wb.getSheetAt(sheetIndex); // 第一行为标题,不取 for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) { HSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = false; for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) { String value = ""; cell = row.getCell(columnIndex); if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = new SimpleDateFormat("yyyy-MM-dd") .format(date); } else { value = ""; } } else { value = new DecimalFormat("0").format(cell .getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = cell.getStringCellValue(); } else { value = cell.getNumericCellValue() + ""; } break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: value = ""; break; case HSSFCell.CELL_TYPE_BOOLEAN: value = (cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: value = ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = true; } if (hasValue) { result.add(values); } } } in.close(); String[][] returnArray = new String[result.size()][rowSize]; for (int i = 0; i < returnArray.length; i++) { returnArray[i] = (String[]) result.get(i); } return returnArray; } /** * 去掉字符串右边的空格 * * @param str * 要处理的字符串 * @return 处理后的字符串 */ public static String rightTrim(String str) { if (str == null) { return ""; } int length = str.length(); for (int i = length - 1; i >= 0; i--) { if (str.charAt(i) != 0x20) { break; } length--; } return str.substring(0, length); } } ------------------------------------------------------------------------------------------ package com.excel; import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.UIManager; import javax.swing.filechooser.FileNameExtensionFilter; /** * 主界面,按钮响应事件,文本域输出Excel内容 */ public class OpenExcel extends JFrame implements ActionListener { private JButton button; private JScrollPane pane; private JTextArea area; public OpenExcel() { super("解析Excel"); button = new JButton("点我选择Excel文件"); button.addActionListener(this); area = new JTextArea(); pane = new JScrollPane(area); this.add(button, BorderLayout.NORTH); this.add(pane); this.setSize(300, 300); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } // 按钮事件 public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser();// 文件选择对话框 chooser.setAcceptAllFileFilterUsed(false);// 取消所有文件过滤项 chooser.setFileFilter(new FileNameExtensionFilter("Excel文件", "xls"));// 设置只过滤扩展名为.xls的Excel文件 int i = chooser.showOpenDialog(this);// 打开窗口 if (i == JFileChooser.APPROVE_OPTION) { this.setLocation(0, 0); this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); new ExcelOperate(area, chooser.getSelectedFile().getAbsolutePath()) .parseExcel(); } } public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); new OpenExcel(); } }为什么实现不了?可以选择但是无法显示在界面上![图片](https://img-ask.csdn.net/upload/201706/08/1496885462_114736.jpg)

Swing问题

package com.D; /* * 用图形界面做一个查找文件并在可以打开该文件的软件 */ import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import javax.swing.*; public class FileAndFrame { JButton button; JTextField filePathText; JTextArea fileContentArea; JFileChooser fileChooser; BufferedReader reader; //创建一个窗口 上面含有一个文本框 和一个按钮,文本框用来获取要查找的文件名,按钮时用来打开文件的,下面是文本域用来显示文件的内容 public JPanel createPanel() { JPanel mainPanel=new JPanel(new BorderLayout()); JPanel top=new JPanel(); button =new JButton("打开文件"); button.addActionListener(new Mo()); filePathText=new JTextField(20); top.add(filePathText); top.add(button); mainPanel.add(top,BorderLayout.NORTH); fileContentArea=new JTextArea(); fileContentArea.setWrapStyleWord(true); fileContentArea.setLineWrap(true); mainPanel.add(fileContentArea); mainPanel.setVisible(true); return mainPanel; } private class Mo implements ActionListener { public void actionPerformed(ActionEvent e) { File openFile=new File(" "); if(openFile!=null) { fileChooser=new JFileChooser(openFile.getParentFile()); } else { fileChooser=new JFileChooser(); } int state =fileChooser.showOpenDialog(null); if(state==JFileChooser.APPROVE_OPTION) { File openFile1=fileChooser.getSelectedFile(); filePathText.setText(openFile1.getPath()); showFileContent(openFile1); } } private void showFileContent(File openFile) { reader=new BufferedReader(new FileReader(openFile)); String temp=null; while(temp=reader.readLine()!=null)//该行报错!! { fileContentArea.append(temp); } } } public static void main(String[] args) { JFrame f=new JFrame("文件寻找窗口"); f.setSize(300,250); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container con=f.getContentPane(); con.add(new FileAndFrame().createPanel()); f.setVisible(true); } } 请各位指点!

《Java核心技术》第2章的ImageViewer不显示书上的图案,为什么呢?

package ImageViewer; import java.awt.*; import java.io.*; import javax.swing.*; /** * A program for viewing images. * @version 1.30 2014-02-27 * @author Cay Horstmann */ public class imgv { public static void main(String[] args) { EventQueue.invokeLater(() -> { JFrame frame = new ImageViewerFrame(); frame.setTitle("ImageViewer"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }); } } /** * A frame with a label to show an image. */ class ImageViewerFrame extends JFrame { private JLabel label; private JFileChooser chooser; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGHT = 400; public ImageViewerFrame() { setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // use a label to display the images label = new JLabel(); add(label); // set up the file chooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(".")); // set up the menu bar JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu menu = new JMenu("File"); menuBar.add(menu); JMenuItem openItem = new JMenuItem("Open"); menu.add(openItem); openItem.addActionListener(event -> { // show file chooser dialog int result = chooser.showOpenDialog(null); // if file selected, set it as icon of the label if (result == JFileChooser.APPROVE_OPTION) { String name = chooser.getSelectedFile().getPath(); label.setIcon(new ImageIcon(name)); } }); JMenuItem exitItem = new JMenuItem("Exit"); menu.add(exitItem); exitItem.addActionListener(event -> System.exit(0)); } } ![图片说明](https://img-ask.csdn.net/upload/201904/10/1554898794_451510.png) ![图片说明](https://img-ask.csdn.net/upload/201904/10/1554898803_474359.png) 不显示图片 图片上传好像有点问题,问题大概描述就是:资源都齐全的,编译运行都正常,就是弹出框框以后没有显示图片内容

求助!!关于选择器选择时候出现的问题

if(e.getActionCommand().equals(dakai)) { } JFileChooser xuanzeqi = new JFileChooser(); xuanzeqi.setDialogTitle("请选择你需要的文件"); xuanzeqi.showOpenDialog(xuanzeqi); this.setVisible(true); String lujingduqu = xuanzeqi.getSelectedFile().getAbsolutePath(); (AbsolutePath) try { duquneirong = new FileReader(lujingduqu); shujuhuanchong = new BufferedReader(duquneirong); String wenbenhuoqu = ""; String wenben = ""; while((wenbenhuoqu = shujuhuanchong.readLine()) != null) { wenben += wenbenhuoqu + '\n'; } wenbenkuang.setText(wenben); 做一个记事本的时候 发现个问题 就是使用选择器选中文件的时候 , 按取消它依然会把选中的文件的内容 读取到 。。 请问应该怎么才能按取消后不进行选择呢?

刚学的java,写了个压缩文件的小程序,一直没有成功

public class f2Test { public static void main(String[] args){ frame02 f2=new frame02(); } } import java.awt.BorderLayout; import java.awt.Color; import java.awt.Image; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.URL; import java.util.List; import java.util.Scanner; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingWorker; public class frame02 extends JFrame{ private static final long serialVersionUID = 1L; private int width=800; private int height=600; private int screen_width; private int screen_height; private JFrame f; private MenuBar mb; private Menu mfile; private MenuItem iopen; private MenuItem iExit; private String zipname; private JComboBox fCombo; private JTextArea fText; public frame02(){ f=new JFrame("压缩文件"); //窗口名称 mb=new MenuBar(); //菜单栏 mfile=new Menu("文件"); //菜单 iopen=new MenuItem("打开"); //菜单项 iExit=new MenuItem("退出"); fCombo=new JComboBox(); f.setVisible(true); //可见性 f.setSize(width,height); //尺寸 f.setBackground(Color.darkGray); //背景颜色 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //窗口关闭设置 screen_width=(int)f.getToolkit().getScreenSize().getWidth(); //获得当前屏幕宽度 screen_height=(int)f.getToolkit().getScreenSize().getHeight(); //获得当前屏幕高度 f.setLocation((screen_width-width)/2,((screen_height-height)/2)); //将窗口设在屏幕中间 URL url=getClass().getResource("zip.jpg.jpg"); //图标路径 Image img=f.getToolkit().getImage(url); //图片对象 f.setIconImage(img); //设置图标 f.setMenuBar(mb); //设置菜单栏 mb.add(mfile); //设置菜单 mfile.add(iopen); //添加菜单项 打开 iopen.addActionListener(new ActionListener(){ //添加 打开 选项的时间监听器 public void actionPerformed(ActionEvent event){ JFileChooser fch=new JFileChooser(); //文件选择对象 fch.setCurrentDirectory(new File(".")); //以当前目录生成一个文件目录实例,然后设置为当前目录 int r=fch.showOpenDialog(frame02.this); //打开选择文件对话框 if(r==JFileChooser.APPROVE_OPTION){ zipname=fch.getSelectedFile().getPath(); fCombo.removeAllItems(); scanZipfile( ); } } }); mfile.addSeparator(); //添加分隔符 mfile.add(iExit); //添加菜单项 退出 iExit.addActionListener(new ActionListener(){ //添加 退出 选项的事件监听器 public void actionPerformed(ActionEvent event){ System.exit(0); } }); fCombo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ loadZipFile((String)fCombo.getSelectedItem()); } }); add(fCombo,BorderLayout.SOUTH); add(new JScrollPane(fText),BorderLayout.CENTER); } public void scanZipfile( ){ //文件浏览程序 new SwingWorker<Void,String>(){ protected Void doInBackground()throws Exception{ //实现抽象方法 ZipInputStream zin=new ZipInputStream(new FileInputStream(zipname)); ZipEntry entry; while((entry=zin.getNextEntry())!=null){ publish(entry.getName()); //将压缩文件的内容登载到List zin.closeEntry(); } zin.close(); return null; } protected void process(List<String>names) { //将List entry名数组加到下拉列表中 for(String name:names)fCombo.addItem(name); } }.execute(); //执行该工作线程 } private void loadZipFile(final String name){ fCombo.setEnabled(false); fText.setText(""); new SwingWorker<Void,Void>(){ protected Void doInBackground()throws Exception{ try{ ZipInputStream zin=new ZipInputStream(new FileInputStream(zipname)); ZipEntry entry; while((entry=zin.getNextEntry())!=null) { if(entry.getName().equals(name)){ Scanner in=new Scanner(zin); while(in.hasNextLine()){ fText.append(in.nextLine()); fText.append("\n"); } } zin.closeEntry(); } zin.close(); } catch(IOException e) { e.printStackTrace(); } return null; } protected void done(){ fCombo.setEnabled(true); } }.execute(); } }

请教SWING小问题

<p>最近天天加班陪测试组做测试,以前都是开发J2EE,下载来一本电子书,里边有个例子,是个小小的图片浏览器, <br>这个东西很粗糙,JFrame的大小不能随图片大小而改变,我想着去改进下,JFrame的大小是随图片大小改变了,但是JMenuBar和JLabel的大小却变不了,百度了下,都没有找到解决方法: <br>代码如下:</p> <p> </p> <pre name="code" class="java">package com.yejq.Swing; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; /* * 图片预览器 */ public class ImageViewer { /** * @param args */ public static void main(String[] args) { JFrame frame = new ImageViewerFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class ImageViewerFrame extends JFrame { public ImageViewerFrame() { this.setTitle("图片预览器"); this.setSize(DEFAULT_WITH, DEFAULT_HEIGHT); label = new JLabel(); this.add(label); chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(".")); JMenuBar menuBar = new JMenuBar(); this.setJMenuBar(menuBar); JMenu menu = new JMenu("File"); menuBar.add(menu); JMenuItem openItem = new JMenuItem("open"); menu.add(openItem); openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { //show file chooser dialog int result = chooser.showOpenDialog(null); //if file selected, set it as icon of the label if(result == JFileChooser.APPROVE_OPTION) { String name = chooser.getSelectedFile().getPath(); ImageIcon image = new ImageIcon(name); changeSize(image.getIconWidth(),image.getIconHeight()); label.setIcon(image); } } }); JMenuItem exitItem = new JMenuItem("exit"); menu.add(exitItem); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); } public void changeSize(int width, int height) { this.setSize(width,height); } private JLabel label; private JFileChooser chooser; private static final int DEFAULT_WITH = 300; private static final int DEFAULT_HEIGHT = 400; } </pre> <p> </p>

建一个窗体,获取选择的文件路径和输入框中的ID,传输给查询程序。

![图片说明](https://img-ask.csdn.net/upload/201801/22/1516589684_320206.png) 效果如图。 点击上传按钮,能够选择本机的excl文件。获取路径。 输入框中输入数字ID 然后点击查询。(如果ID没有,或者文件路径没有,提示需要输入ID,或者需要选择文件) 点查询后,能够将ID和路径传给查询java。 查询的java已经写好了。 现在需要的是怎么建立这个窗体,来实现功能。 下面是窗体代码(需要修改的,我只是实现了界面排版): package test; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import excel.ExcelOperate; public class AbsolutePosition extends JFrame implements ActionListener { private JButton b1; private JScrollPane pane; private JTextArea area; public AbsolutePosition() { setTitle("本窗体使用绝对布局"); // 设置该窗体的标题 setLayout(null); // 使该窗体取消布局管理器设置 setBounds((Toolkit.getDefaultToolkit().getScreenSize().width -500)/2, (Toolkit.getDefaultToolkit().getScreenSize().height - 300)/2, 400, 400); // 绝对定位窗体的位置与大小 Container c = getContentPane(); // 创建容器对象 Label lb1 = new Label ("选择文件:"); b1 = new JButton("点击选择"); // 创建按钮 b1.addActionListener(this);//b1这个实例(按钮等)添加事件监听接口,this表示当前类的对象,在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性 area = new JTextArea(); pane = new JScrollPane(area); Label lb2 = new Label ("员工ID:"); JButton b2 = new JButton("查询"); // 创建按钮 JTextField jt=new JTextField();//创建输入框 lb1.setBounds(30, 30, 120, 30); // 设置文本的位置与大小 lb2.setBounds(30, 80, 120, 30); b1.setBounds(140, 30, 120, 30); // 设置按钮的位置与大小 jt.setBounds(140, 80, 100, 30);//设置文本框位置和大小 b2.setBounds(140, 150, 100, 30); c.add(b1); // 将按钮添加到容器中 this.add(pane); c.add(b2); c.add(lb1); c.add(jt); c.add(lb2); setVisible(true); // 使窗体可见 // 设置窗体关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } // 按钮事件 public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser();// 文件选择对话框 chooser.setAcceptAllFileFilterUsed(false);// 取消所有文件过滤项 chooser.setFileFilter(new FileNameExtensionFilter("Excel文件", "xls"));// 设置只过滤扩展名为.xls的Excel文件 //String firstNum = jt.getText();//获取输入框值 int i = chooser.showOpenDialog(this);// 打开窗口 if (i == JFileChooser.APPROVE_OPTION) { this.setLocation(0, 0); this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); //new ExcelOperate(area, chooser.getSelectedFile().getAbsolutePath())//调用ExcelOperate // .parseExcel(); //String B=(String)chooser.getSelectedFile().getAbsolutePath();//B为文件路径 //System.out.println(B); } } public static void main(String[] args) { new AbsolutePosition(); } } 下面是查询主代码 public static void main(String[] args) throws Exception { Car fy = new Car(); URL url = new java.net.URL("http://********");//这个是费用接口 //excel路径 String excel_file_path = "D:/cheliang.xls"; //获取excel数据 String A= new String(); String id="16215288";//员工ID List<LinkedHashMap<String,Object>> dataList = fy.getMsgInfoFromExcel(excel_file_path); for(LinkedHashMap<String,Object> dataMap : dataList){ String _cjh = dataMap.get("车架号(必填)")==null?"":dataMap.get("车架号(必填)").toString(); String _xm = dataMap.get("被保险人(必填)")==null?"":dataMap.get("被保险人(必填)").toString(); String _tel = dataMap.get("手机号")==null?"":dataMap.get("手机号").toString(); StringBuffer str = new StringBuffer(); str.append("<Request><VinNo>"); str.append(_cjh); str.append("</VinNo><CustomerName>"); str.append(_xm); str.append("</CustomerName><Mobile>"); str.append(_tel); str.append("</Mobile><IdentityCard></IdentityCard><LoginID>"); str.append(id); str.append("</LoginID></Request>"); URLConnection con = url.openConnection(); con.setUseCaches(false); con.setDoOutput(true); con.setDoInput(true); DataOutputStream dataOut = new DataOutputStream(con.getOutputStream()); String msg = str.toString(); //调用发送方法 //fy.sendMsg(msg, dataOut, con); //String carInfo=fy.sendMsg(msg, dataOut, con); String carInfo=sendMsg(msg, dataOut, con); if(carInfo.equals("车架号校验失败")) { A=A+"<Response> <VinNo>"+_cjh+"</VinNo> <CustomerName>"+_xm+"</CustomerName> <Mobile>"+carInfo+"</Mobile> <IdentityCard></IdentityCard> <ReturnMsgList> <ReturnMsg> <CarID></CarID> <CI__PolicyNo></CI__PolicyNo> <BZ__PolicyNo></BZ__PolicyNo> <LicenseNo></LicenseNo> <EngineNo></EngineNo> <FamilyType></FamilyType> <FamilyNewName></FamilyNewName> <EndDate></EndDate> <InsuredCode></InsuredCode> <ClaimCount></ClaimCount> <ClaimOldCount></ClaimOldCount> <NodamYearsBI></NodamYearsBI> <Age></Age> <ModelCode></ModelCode> <Message>"+carInfo+"</Message> </ReturnMsg> </ReturnMsgList></Response>"; }/*else if(carInfo == null || str.length() <= 0){ A=A+"<Response> <VinNo>"+_cjh+"</VinNo> <CustomerName>"+_xm+"</CustomerName> <Mobile>"+"获取为空"+"</Mobile> <IdentityCard></IdentityCard> <ReturnMsgList> <ReturnMsg> <CarID></CarID> <CI__PolicyNo></CI__PolicyNo> <BZ__PolicyNo></BZ__PolicyNo> <LicenseNo></LicenseNo> <EngineNo></EngineNo> <FamilyType></FamilyType> <FamilyNewName></FamilyNewName> <EndDate></EndDate> <InsuredCode></InsuredCode> <ClaimCount></ClaimCount> <ClaimOldCount></ClaimOldCount> <NodamYearsBI></NodamYearsBI> <Age></Age> <ModelCode></ModelCode> <Message>"+carInfo+"</Message> </ReturnMsg> </ReturnMsgList></Response>"; }*/else { A=A+carInfo; } OutExcel oed = new OutExcel(); oed.outExcel(A); dataOut.flush(); dataOut.close(); } } 主程序中的:excel_file_path和id希望能通过窗口获取过来。当然,如果用页面实现也可以。 欢迎大神私聊解决

java,以下的代码所打开的JFileChooser为什么不能决定过滤器呢?

import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.filechooser.FileNameExtensionFilter; public class FileChooseDemo { JPanel panel ; JFrame frame ; JButton btn ; int rs ; public FileChooseDemo () { frame = new JFrame () ; panel = new JPanel () ; btn = new JButton ("click") ; btn.addActionListener(new ActionListener () { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub JFileChooser jfc = new JFileChooser () ; rs = jfc.showOpenDialog(frame) ; FileNameExtensionFilter fnef = new FileNameExtensionFilter ("jpg,png","jpg","png") ; jfc.addChoosableFileFilter(fnef) ; if(rs == JFileChooser.APPROVE_OPTION) { System.out.println(jfc.getSelectedFile().getName()) ; } } }); panel.add(btn) ; frame.add(panel) ; frame.setPreferredSize(new Dimension(100,100)) ; frame.pack() ; frame.setResizable(false) ; frame.setLocationRelativeTo(null) ; frame.setVisible (true) ; } public static void main(String[] args) { // TODO Auto-generated method stub new FileChooseDemo () ; } } 只要加上包名即可运行。我的目的是,只能选择jpg和png的文件,但是用的那个过滤器并没有过滤的效果,这是为什么呢?

读取word文件,出现乱码,应该怎么解决

我在swing中,通过Jfilechooser选择文件,然后用bufferreader读取doc文件,显示在jtextArea中为乱码,请问应该怎么解决。 ``` button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser("..\\稻田综合种养信息服务系统\\src\\files"); jf.setDialogTitle("Chose..."); int result = jf.showOpenDialog(getContentPane()); jf.setVisible(true); File selectedFile = null; FileReader fileReader=null; BufferedReader bufferreader = null; String line; if (result == JFileChooser.APPROVE_OPTION) { textArea.setText(""); File file=jf.getSelectedFile(); try { fileReader=new FileReader(file); bufferreader=new BufferedReader(fileReader); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { while ((line = bufferreader.readLine()) != null) { textArea.append(line + "\r\n");//按行读取文本,显示在TEXTAREA中 } } catch (IOException e1) {e1.printStackTrace(); } } if (result == JFileChooser.CANCEL_OPTION) { textArea.setText(""); textArea.setText(""); } if (result == JFileChooser.ERROR_OPTION) { textArea.setText(""); textArea.setText(""); } } }); ``` 这是我读出来doc的样子,全是乱码。 ![图片说明](https://img-ask.csdn.net/upload/201906/08/1560001124_555412.png)

Java调用打印机打印标签纸,但是没有2*4这个格式,原因是为什么?就算设置了2*4也一样打印出4*6的格式。

public class Print { public static void print1() { //JFileChooser fileChooser = new JFileChooser(); // 创建打印作业 //int state = fileChooser.showOpenDialog(null); //if (state == fileChooser.APPROVE_OPTION) { File file = new File("D:/标签.jpeg"); // 获取选择的文件 // 构建打印请求属性集 HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); // 设置打印格式,因为未确定类型,所以选择autosense DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG; // 查找所有的可用的打印服务 PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); // 定位默认的打印服务 PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); // 显示打印对话框 PrintService service = ServiceUI.printDialog(null, 100, 100, printService, defaultService, flavor, pras); Media[] objs = (Media[]) service.getSupportedAttributeValues(Media.class, null, null); if (service != null && objs!=null) { try { DocPrintJob job = service.createPrintJob(); // 创建打印作业 FileInputStream fis = new FileInputStream(file); // 构造待打印的文件流 DocAttributeSet das = new HashDocAttributeSet(); Doc doc = new SimpleDoc(fis, flavor, das); job.print(doc, pras); } catch (Exception e) { e.printStackTrace(); } } } } ![图片说明](https://img-ask.csdn.net/upload/201910/28/1572263808_127048.png)

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐